- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:バッチファイルでの%を含むファイル名の取得)
バッチファイルでの%を含むファイル名の取得
このQ&Aのポイント
- バッチ処理でフォルダごとの画像ファイルの数を取得する方法についてご質問です。
- バッチ処理中にファイル名やフォルダ名に%が含まれる場合、正しく動作しない問題があります。
- %を含むファイル名やフォルダ名を正しく取得するにはどうすれば良いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。いろいろと試されてますね。 以下の例は拡張子がjpgのファイルがあるフォルダとファイル数を表示するバッチの例です。"%"が含まれても問題ありません。 表示するだけでなく環境変数に格納したいならもう少し記載が 必要になります。 pushd e:\ dir /s *.jpg | findstr "のディレクトリ 個のファイル"
その他の回答 (1)
- chie65536(@chie65535)
- ベストアンサー率44% (8754/19864)
回答No.1
call文は引数が2度評価されるので、1度目に評価した結果に%が含まれると、更にその%を展開しようとします。 set /?で「遅延展開」について参照してみてください。 遅延展開により、for文の中でcall文を使用した際に2重評価されるのを防げる可能性があります。
補足
回答ありがとうございます、先日は詳しい回答ありがとうございました 最終的に、%を名前に含むフォルダをmoveで移動する必要があるので、表示だけでなく、どうしても環境変数に代入する必要があります。 手間を取らせて申し訳ありませんが、気が向いた時にでも、正しく動かせる代入方法も書いていただけるとうれしいです、コマンドプロンプトはほかにも^やキリル文字でうまく動かないことが分かってきたので(shift_jisに起因する問題)C++にでも挑戦しようと思ってます。