2015-11-10 118 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

相关问题