- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドプロンプトのfor文の処理について)
コマンドプロンプトのfor文の処理について
このQ&Aのポイント
- コマンドプロンプトのfor文を使用して拡張子を除いた文字列を抽出する方法について質問しています。
- for文の中でのechoコマンドの出力ができない理由についての質問です。
- 変数の指定方法が異なるためにfor文の中でのechoコマンドの出力ができない可能性があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
環境変数は、for文が実行される最初の段階で展開されてしまいます。今回の場合は、cに何も入っていないので、 for %%i in (*.txt) do (set/p c=%%~ni & echo ) として実行されます。なので、for文の途中で環境変数の内容を変えても、それが反映されないのです。 これを防ぐためには、遅延環境変数展開を使用します。for文の前に setlocal ENABLEDELAYEDEXPANSION を実行して遅延環境変数展開を有効にしたうえで、%c%を!c!に変更します。
お礼
お礼が遅くなってしまって申し訳ありません. なるほど,C言語のfor文と同じような感覚で使用しておりました. 大変勉強になりました! 無事解決して,ファイル名を取得することができました. どうもありがとうございました.