加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 带有for循环和管道的批处理脚本

发布时间:2020-12-13 20:48:07 所属栏目:Windows 来源:网络整理
导读:我想在一个目录中的所有csv文件,其文件名不包含单词“summary”。在命令提示符下,我可以输入以下命令 dir /b my_dir*.csv | find /V "summary" 当我尝试将上述命令转移到批处理文件时,我遇到了一个问题,即for循环中不支持管道命令。那是我不能做到以下
我想在一个目录中的所有csv文件,其文件名不包含单词“summary”。在命令提示符下,我可以输入以下命令
dir /b my_dir*.csv | find /V "summary"

当我尝试将上述命令转移到批处理文件时,我遇到了一个问题,即for循环中不支持管道命令。那是我不能做到以下几点

FOR /f %%A in ('dir /b my_dir*.csv | find /V "summary"') do (
rem want to do something here
)

有人可以解释一下如何解决上述问题吗?

提前致谢!

你需要逃避|在解析循环命令时阻止其被解释的字符。使用^来逃避它:
FOR /f "delims=" %%A in ('dir /b "my_dir*.csv" ^| find /V "summary"') do (
rem do what you want with %%A here
)

一旦逃脱,|成为’-delimited字符串的一部分。根据语法,当字符串与循环分开解析时,它仅被解释为特殊符号,作为“子命令”。这是在解析循环之后完成的。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读