Windows蝙蝠:目录中的循环文件

我正在使用Windows。 我在一个目录的子目录中有很多jpg文件。 我不知道目录的架构,这意味着我不知道子目录有多less级别。 我需要做的是根据path处理jpg文件。 这里是一个例子:

 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 

我不知道如何写这样一个蝙蝠文件,特别是一个蝙蝠处理path包含空格。 我不知道空间是否会造成一些麻烦。

我试过如下,但它不工作:

 @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 

看来*被认为是一个正常的字符。

Solutions Collecting From Web of "Windows蝙蝠:目录中的循环文件"

 @Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /d %%A in (C:\dir\*) Do ( Set "Files=" For /F "delims=" %%B in ('dir /S /B "%%~fA\*.jpg"') Do Set Files=!Files! "%%~fB" If defined Files echo process.bat !Files! ) pause 
 If defined Files echo process.bat !files! 

应该解决问题 – 但是process.bat是否会合作尚未确定。 如果需要的话,需要你列出process.bat