我正在使用Windows。我在目录的子目录中有许多jpg
个文件。我不确切知道目录的体系结构,这意味着我不知道子目录有多少级别。我需要做的是根据路径处理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
我不知道如何编写这样的bat文件,特别是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
似乎*
被视为正常角色。
答案 0 :(得分:1)
@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
答案 1 :(得分:0)
If defined Files echo process.bat !files!
应该解决问题 - 但是process.bat
合作是否尚未确定。如果需要,您需要列出process.bat
。