2

我想制作一个运行此命令的批处理文件:

C:\Program Files (x86)\IrfanView\i_view32.exe" "C:\Users\digi_admin\TIFFs\
OLD DIRECTORY\*.tif" /ini="C:\Users\digi_admin\Documents\" /advancedbatch /tifc=4  
/convert="C:\Users\digi_admin\CompTIFs\Some Folder\NEW DIRECTORY\*.tif"

在几个文件夹中的所有文件上。所有文件都将位于 \TIFFs\ 但将驻留在几个不同的子文件夹中。(OLD DIRECTORY) 我还需要在运行命令之前创建文件夹 \NEW DIRECTORY\(与 OLD DIRECTORY 同名)(是否运行?)。这是我到目前为止所拥有的:

FOR /D %d IN ("C:\Users\digi_admin\TIFFs\*.*") DO "C:\Program Files 
(x86)\IrfanView\i_view32.exe" %d\*.tif /ini="C:\Users\digi_admin\Documents\" 
/advancedbatch /tifc=4 /convert="C:\Users\digi_admin\CompTIFs\Some Folder\%d\*.tif"

我一直在命令行中尝试它,所以 %d 应该是 %%d。我对DOS不熟悉,所以我敢肯定它相对简单。任何帮助将不胜感激。

4

1 回答 1

3
@ECHO OFF
SETLOCAL
SET destroot=C:\Users\digi_admin\CompTIFs
FOR /D %%d IN ("%destroot%\*") DO (
MD "%destroot%\%%~nxd" 2>nul

"C:\Program Files (x86)\IrfanView\i_view32.exe" "%%d\*.tif" /ini="C:\Users\digi_admin\Documents\" /advancedbatch /tifc=4 /convert="%destroot%\%%~nxd\*.tif"
)

现在 - 假设“/convert”是目标文件规范。

笔记:

  • 我已将目标根设置为变量 - 使输入更容易
  • 如果目标目录已经存在, 2>nul 会抑制生成的错误消息
  • %%~nxd 表示来自 %%d 的名称和扩展名。扩展名很可能不存在 - 这是无害的
于 2013-03-12T01:09:38.333 回答