我正在使用Windows。我在目錄的子目錄中有許多jpg
文件。我不完全知道目錄的架構,這意味着我不知道子目錄有多少層。我需要做的是根據路徑處理jpg
文件。這裏有一個例子:
Windows蝙蝠:目錄中的循環文件
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