2013-03-12 227 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

相關問題