首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套forfiles:路径和扩展过滤器

嵌套forfiles:路径和扩展过滤器
EN

Stack Overflow用户
提问于 2011-08-02 09:11:19
回答 2查看 4.6K关注 0票数 4

是否有可能嵌套两个forfile命令,以便我可以通过路径名extension进行筛选,然后只对那些双筛选文件运行一个命令?

例如,我希望获得所有用户的所有Outlook签名。我可以通过

代码语言:javascript
复制
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm"

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

更改此命令不起作用,因为我需要在内部/c命令中设置-option,该命令需要在引号中设置命令,导致双引号:

代码语言:javascript
复制
forfiles /s /p c:\Users /m *Signatures* /c "cmd /c forfiles /s /p @path /m *.htm /c "cmd /c echo @path""

如何摆脱内部引号,或者使用一些不同的方法来对所有由路径和文件扩展名的子字符串过滤的文件运行任何命令?

亲切的问候

sc911

用于递归搜索的/s编辑遗忘/edit

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-03 05:20:34

FORFILES似乎能够认识到\"是逃避内在"的方法。因此,以下几点应能发挥作用:

代码语言:javascript
复制
forfiles /p c:\Users /m *Signatures* /c "cmd /c forfiles /p @path /m *.htm /c \"cmd /c echo @path\""
票数 2
EN

Stack Overflow用户

发布于 2011-08-02 14:25:37

您可以使用两个嵌套的forfiles命令来代替FOR

请参阅下面的一行示例,以便在cmd提示符中进行测试。

代码语言:javascript
复制
@for /d %d in (c:\Users\*signature*) do @for %f in (%d\*.htm) do @echo %f

并使用此代码作为框架,将其包含在BAT文件中。

代码语言:javascript
复制
for /d %%d in (c:\Users\*signatures*) do (
  for %%f in (%%d\*.htm) do (
    echo %%f
  )
)  
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6909696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档