嵌套forfiles:path和扩展名filter

是否有可能嵌套两个forfile命令,以便我可以通过path名扩展 进行过滤,然后只对这些双重过滤的文件运行命令?

举例来说,我想要获得所有用户的所有Outlook HTML签名。 我可以做到这一点

 forfiles /s /pc:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm" 

但是这只会显示文件名,因为这是forfiles默认的调用cmd /c echo @file

改变这是行不通的,因为那么我需要在内部的forfiles命令中设置/c -option,它需要设置引号引起双引号:

 forfiles /s /pc:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm /c "cmd /c echo @path"" 

我怎样才能转义内部的引号或使用一些不同的方法来运行所有文件的path和文件扩展名的子string过滤的所有文件?

亲切的问候
sc911

忘记/srecursionsearch[/编辑]

Solutions Collecting From Web of "嵌套forfiles:path和扩展名filter"

FORFILES似乎能够认识到\"逃避内心的方式" 。 所以,以下应该工作:

 forfiles /pc:\Users /m *Signatures* /c "cmd /c forfiles /p @path /m *.htm /c \"cmd /c echo @path\"" 

您可以使用两个嵌套的FOR命令而不是forfiles

请参阅以下单行示例以在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 ) )