是否有可能嵌套两个forfile命令,以便我可以通过路径名和extension进行筛选,然后只对那些双筛选文件运行一个命令?
例如,我希望获得所有用户的所有Outlook签名。我可以通过
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm"但是这只会显示文件名,因为这是forfiles调用cmd /c echo @file的默认行为。
更改此命令不起作用,因为我需要在内部/c命令中设置-option,该命令需要在引号中设置命令,导致双引号:
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm /c "cmd /c echo @path""如何摆脱内部引号,或者使用一些不同的方法来对所有由路径和文件扩展名的子字符串过滤的文件运行任何命令?
亲切的问候
sc911
用于递归搜索的/s编辑遗忘/edit
发布于 2011-08-03 05:20:34
FORFILES似乎能够认识到\"是逃避内在"的方法。因此,以下几点应能发挥作用:
forfiles /p c:\Users /m *Signatures* /c "cmd /c forfiles /p @path /m *.htm /c \"cmd /c echo @path\""发布于 2011-08-02 14:25:37
您可以使用两个嵌套的forfiles命令来代替FOR。
请参阅下面的一行示例,以便在cmd提示符中进行测试。
@for /d %d in (c:\Users\*signature*) do @for %f in (%d\*.htm) do @echo %f并使用此代码作为框架,将其包含在BAT文件中。
for /d %%d in (c:\Users\*signatures*) do (
for %%f in (%%d\*.htm) do (
echo %%f
)
) https://stackoverflow.com/questions/6909696
复制相似问题