私はWindowsで作業しています。私は多くのjpg
ファイルをディレクトリのサブディレクトリに持っています。私はディレクトリのアーキテクチャを正確には知らないので、サブディレクトリにいくつのレベルがあるか分かりません。私がする必要があるのは、ファイルのパスに従ってjpg
ファイルを処理することです。次に例を示します。
Windows bat:ディレクトリ内のファイルをループする
dir
|---sub dir1
| |-----sub dir11
| |-----a.jpg
| |-----b.jpg
|---sub dir2
|-----c.jpg
|-----d.jpg
だから私は以下のようにコマンドを実行する必要があります。
process.bat C:\dir\sub dir1\sub dir11\a.jpg C:\dir\sub dir1\sub dir11\b.jpg
process.bat C:\dir\sub dir2\c.jpg C:\dir\sub dir2\d.jpg
私は、このようなbatファイルを作成する方法、特にバットの処理経路を知らないスペースが含まれています。スペースが問題を起こすかどうかはわかりません。
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
For /d %%A in (C:\dir\*) Do (
Set "Files="
For /f %%B in ("%%~fA\*.jpg") Do Set Files=!Files! "%%~fB"
If defined Files echo process.bat %%~fA\*.jpg
)
pause
私は、スクリプトを実行すると、私は以下のような結果を得る:
process.bat C:\dir\sub dir1\*.jpg
process.bat C:\dir\sub dir2\*.jpg
それはと思われる、私は以下のように試してみたが、それは動作しません
*
は通常の文字と見なされます。
変更してみてください。パス内のスペースが別の問題を引き起こすことを除いて、動作するようです。今度はそのような結果が得られます: 'process.bat C:\ dir \ sub process.bat C:\ dir \ sub' – Yves
パス内のすべてのスペースを削除してもまだ動作しません。私はこれを持っています: 'process.bat C:\ dir \ subdir1 \ *。jpg process.bat C:\ dir \ subdir2 \ *。jpg' – Yves
問題は解決しました。私は別の答えを述べる。 – Yves