1. ホーム
  2. windows

[解決済み] Windowsでコマンドの結果を変数に格納するにはどうしたらいいですか?

2022-04-26 03:12:35

質問

Windowsのバッチスクリプトで、コマンドの結果を変数として取得したいのですが( bashでコマンドの結果を取得する方法 はbashスクリプトに相当します)。 .bat ファイルで動作するソリューションが望ましいですが、他の一般的な Windows スクリプトのソリューションも歓迎します。

どのように解決するのですか?

もし、すべてのコマンド出力をキャプチャする必要がある場合は、次のようなバッチを使用することができます。

@ECHO OFF
IF NOT "%1"=="" GOTO ADDV
SET VAR=
FOR /F %%I IN ('DIR *.TXT /B /O:D') DO CALL %0 %%I
SET VAR
GOTO END

:ADDV
SET VAR=%VAR%!%1

:END

すべての出力行は、"!" で区切られたVARに格納されます。

しかし、1行のコンソール出力しか期待できない場合は、試してみてください。

@ECHO off
@SET MY_VAR=
FOR /F %%I IN ('npm prefix') DO @SET "MY_VAR=%%I"

@REM Do something with MY_VAR variable...

ジョン:実用性はあるんですか?PowerShell や、スクリプトを簡単に実行できるプログラミング言語 (Python、Perl、PHP、Ruby) を見るべきでしょう。