sc9*_*911 4 windows command-line cmd batch-file
是否有可能嵌套两个forfile命令,以便我可以按路径名和扩展名进行过滤,然后只对那些双重过滤的文件运行命令?
通过示例,我想获得所有用户的所有Outlook HTML签名.我可以做到这一点
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm"
Run Code Online (Sandbox Code Playgroud)
但这只会显示文件名,因为它是forfiles调用的默认行为cmd /c echo @file.
更改此方法不起作用,因为我需要/c在内部forfiles命令中设置-option,这需要在引号中设置命令,从而产生双引号:
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm /c "cmd /c echo @path""
Run Code Online (Sandbox Code Playgroud)
如何转义内部引号或使用某种不同的方法对由路径的子字符串和文件扩展名过滤的所有文件运行任何命令?
亲切的问候
sc911
[编辑]忘/s了递归搜索[/ edit]
而不是forfiles你可以使用两个嵌套FOR命令.
请参阅以下单行示例以在cmd提示符下进行测试
@for /d %d in (c:\Users\*signature*) do @for %f in (%d\*.htm) do @echo %f
Run Code Online (Sandbox Code Playgroud)
并使用此代码作为骨架包含在BAT文件中
for /d %%d in (c:\Users\*signatures*) do (
for %%f in (%%d\*.htm) do (
echo %%f
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3934 次 |
| 最近记录: |