2017-09-30 5 views
0

私は各JPGのテキストファイルを保存するために単純なバッチファイルを作成しています。 txtファイルの内容は、set/pを使用してユーザーが入力します。何らかの理由で、私がset/pをforループで使用したとき、txtファイルにユーザーによる値入力が表示されませんでした( "ECHO is on"と表示されます)。ありがとう。forループでSet/pコマンドを使用する

for %%Q in (*v.JPG) do (
set /p meas= "enter value " 
echo %meas%>"%%~nQ.txt" 
) 
pause 
+3

トップバーの 'search'機能を使用して' delayed expansion'への参照を見つけます – Magoo

+3

[バッチファイルの遅延展開の例](https://stackoverflow.com/questions/10558316/example-of) -delayed-expansion-in-batch-file) –

答えて

-1
for %%Q in (v*.jpg) do (set /p meas="enter value " && echo !meas! > %%~nQ.txt) 

私は、CMDプロンプトでこれをテストしたが、同様のバッチで動作するはずです。

これは、新しいファイル<filename>.jpg.txtを作成し、ユーザーが入力した値を含みます。

鍵は、& &をset /pechoの間に追加することです。

+0

https://stackoverflow.com/questions/38805476/enable-delayed-expansion-doesnt-work Magooが正しい。どのように私のために働いているか分からない。私の一部でユーザーエラーが発生している必要があります。 – foodcoder86

0

まぐーが正しくありがとうございます!遅延拡張を有効にしてから変数を!variableとして参照する必要がありました。 %variable%ではありません。残念ながら、Microsoft Webサイトにはこの問題に関する文書はありません。少なくとも、「set」コマンドWebページにはありません。

関連する問題