0

我在输入目录中有多个带有 .jpg 文件的文件夹

  • C:\MyFolders\AAA\001.jpg
  • C:\MyFolders\AAA\002.jpg
  • C:\MyFolders\BBB\001.jpg
  • C:\MyFolders\BBB\002.jpg
  • C:\我的文件夹...

我想转换所有 .jpg 文件并在输出目录中保持相同的文件夹结构

  • C:\NewFolders\AAA\001.jpg
  • C:\NewFolders\AAA\002.jpg
  • C:\NewFolders\BBB\001.jpg
  • C:\NewFolders\BBB\002.jpg
  • C:\新文件夹...

for /d %%f in (C:\MyFolders\*) do i_view32.exe "%%f\*.jpg" /resize=(1280,1280) /jpgq=75 /aspectratio /resample /convert=C:\NewFolders\%%d\*.jpg

使用上面的代码转换工作,但输出文件夹是 %d

  • C:\NewFolders\%d\001.jpg
  • C:\NewFolders\%d\002.jpg

覆盖 .jpg

4

1 回答 1

0

我强烈怀疑更改 中使用的元变量FOR以匹配DO可能会提前使用的元变量。您发布的代码将目录名应用于%%f但您随后%%dDO.

不过,这只是您的解决方案的开始。你可能需要类似的东西

for /r /d %%f in (C:\MyFolders\*) do ( for /f "tokens=1*delims=\" %%x in ("%%f") do (
  i_view32.exe "%%f\*.jpg" /resize=(1280,1280) /jpgq=75 /aspectratio /resample /convert=C:\NewFolders\%%x\*.jpg
 )
)
于 2013-11-10T02:09:36.543 回答