我想在一个目录中的所有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字符串的一部分。根据语法,当字符串与循环分开解析时,它仅被解释为特殊符号,作为“子命令”。这是在解析循环之后完成的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。