2015-11-10 143 views
0

因此,我正在處理多批處理程序,我需要知道如何遍歷所有文件,包括子文件夾內的文件。但是,我無法這樣做。其中一個需要此功能的程序是使用命令「certutil -encode」,它對該文件夾和子文件夾中的所有文件進行編碼,並使用命令「certutil -decode」進行解碼,這裏是我到目前爲止獲得的代碼(此代碼是在一個循環中):批處理通過所有文件和子文件夾

set file=C:\Extras\Encode\*.txt 
certutil -encode C:\Extras\Encode\*.txt C:\Extras\Encoded\*.b64 

然而,這並不工作,因爲它只遍歷C:\額外\編碼,但不測試子文件夾內的像C:\額外\編碼\子文件夾\我該怎麼辦?

編輯:我知道第二部分的輸出是C:\ Extras \ Encoded * .hex是錯誤的。

+0

查看'for/R'以遞歸方式遍歷目錄樹; 'for/R/D'不變,但枚舉所有目錄而不是文件;在命令提示符下鍵入'for /?'以獲取詳細信息... – aschipfl

回答

2

一般而言,

for /f "delims=" %%a in ('dir /s /b "C:\extras\encode\*.txt"') do echo %%a 

應該提供一個%%與每個文件名相匹配的子樹中的掩模。您可以像修改驅動器,路徑,名稱,擴展名或all-in-combination一樣使用修改的引用%%〜da %%〜pa %%〜na %%〜xa %%〜dpnxa。

具體取決於應用程序。

+0

除非當我這樣做,否則它將%% a設置爲多個文件並且使用「certutil -encode」是不可能的,因爲這些參數太多因爲它立即處理,我怎麼繞過這個?我應該將此作爲另一個問題嗎? – DragonZeith

+0

我不是'certutil'的專家 - 我從來沒有用過它。也許在'echo %% a'的位置,你可以嘗試'certutil -encode C:\ Extras \ Encode \ %%〜na.txt C:\ Extras \ Encoded \ %%〜na.b64'應該運行一個不同的' certutil'實例連續發送到每個文件。似乎沒有提供給文件列表的'certutil'選項。首先運行一個小子集,看看它是如何發展的。 '%%〜na'表示'%% a'的名稱部分。您可能需要'%%〜nxa'這意味着'%% a'的名稱+擴展名。 – Magoo

相關問題