我正在使用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
看来*
被认为是一个正常的字符。
@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
。