• ベストアンサー

コマンド実行結果を環境変数に代入する方法ありますか

下記のとおりfindコマンドを実行すると結果が表示されます。 findコマンドの実行結果を直接環境変数に代入したいのですが、 できますでしょうか。 できれば「5」だけを環境変数に代入したいです。 よろしくお願いします。 C:\tmp>find /C "OPEN" aaa.txt ---------- AAA.TXT: 5

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

バッチファイルとして書くならこんな感じですね。 @echo off for /f "tokens=3 delims= " %%a in ('find /C "OPEN" aaa.txt') do set RESULT=%%a echo [%RESULT%]

waowaowaowaiwai
質問者

お礼

期待どおりの動きをしてくれました。 どうもありがとうございました。

その他の回答 (1)

  • G_Amino
  • ベストアンサー率76% (13/17)
回答No.1

こんな方法しか思いつきませんが、どうでしょう? tmp1.txt と tmp2.txt が実行結果を一時保存するファイルで、 test が環境変数とします。 find /C "OPEN" aaa.txt>tmp1.txt more +1 tmp1.txt>tmp2.txt set /P test=<tmp2.txt set test=%test:*: =% 1行目でコマンド実行結果を一時ファイルに保存し、2行目で先頭の空白行を削除して保存しなおす。 3行目で一時ファイルの内容を目的の環境変数に代入。 4行目は記号ばかりでわかりにくいですが、環境変数の中から「: 」(コロン、スペース)のパターンを検索して、その位置までの文字列を削除し、再度同じ環境変数に代入しています。 (テスト環境:WindowsXP SP2)

waowaowaowaiwai
質問者

お礼

どうもありがとうございました。

関連するQ&A