2013-03-12 226 views
1

上的所有文件执行命令我想使运行此命令的批处理文件:批处理文件到多个目录

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" 

上的所有文件在多个文件夹。所有文件将位于\ TIFF \中,但会驻留在几个不同的子文件夹中。 (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不熟悉,所以我确信它比较简单。任何帮助将不胜感激。

回答

1
@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'是一个目标filespecpec。

注:

  • 我已经设定的目的地的根到一个变量 - 使得打字 容易
  • 2> NUL抑制生成错误消息应在 目标目录已经存在
  • %%〜nxd表示来自%% d的名称和eXtension。很可能, 扩展名将不存在 - 这是无害的
+0

我会明天尝试。看起来我甚至没有玩过同样的游戏......更不用说在棒球场上。 – OverworkedTechydude 2013-03-12 02:17:52

+0

我只是复制了你的... i_view32 ...从你的初始文章,并修改它。你似乎已经执行了命令,因此你已经使用了'%d',但是在一个批处理文件中,你需要使用'%% d',我没有改变它。现在修复 - 我希望。结果会是Irfanview找不到源文件。我不知道Irfanview的'/ convert'开关 - 它在做什么 - 但它似乎指定了要创建的目标FILE而不是目标DIRECTORY。因此'/ convert =“%destroot%\ %%〜nxd \ *。tif”'看起来是正确的 – Magoo 2013-03-13 15:07:28

+0

顺便说一句 - 如果你在'C:\ Program Files(x86) ...'然后你会看到提议的Irfanview调用,而不是执行它。更容易(和更好)修复'IF'有什么错误... – Magoo 2013-03-13 15:10:08

相关问题