繁体   English   中英

如何在批处理脚本中的令牌后包含空格

[英]How to include spaces after a token in batch script

我正在使用repl.bat查找和替换文件。 这是我的代码

for /f "tokens=1,2" %%s in (FindNReplace.txt) do (

    Type C:\user\linefeed\%%a  | C:\comp\bat\repl.bat "\%%s" "%%t" X > C:\user\out\%%a 
  )

现在在我的FindNReplace.txt中,有示例内容:

AAAAA\d{3}      AAAAA  

基本上所有包含AAAAA + 3个字节的字符串都将被AAAAA替换。 现在,如果我想在字符串中包含3个字节的空格以用作替换该怎么办? “ AAAAA + 3空格”我可以在FindNReplace.txt的第二栏中添加特殊字符吗?

如果要在.txt文件的第二列中包含空格,则需要向for命令指示不应将这些空格视为分隔符。 只需指出要检索的令牌是该行中的第一个元素,第二个令牌将是该行中的所有剩余数据。

for /f "tokens=1,*" %%s in (FindNReplace.txt) do (
    Type C:\user\linefeed\%%a  | C:\comp\bat\repl.bat "\%%s" "%%t" X > C:\user\out\%%a 
)

并且,当然要在第二个列中的值之后包含三个空格。

编辑以适应评论

copy "C:\user\linefeed\%%a" "C:\user\linefeed\%%a.in.tmp"
for /f "tokens=1,*" %%s in (FindNReplace.txt) do (
    Type "C:\user\linefeed\%%a.in.tmp"  | C:\comp\bat\repl.bat "\%%s" "%%t" X > "C:\user\linefeed\%%a.out.tmp"
    move /y "C:\user\linefeed\%%a.out.tmp" "C:\user\linefeed\%%a.in.tmp"
)
move "C:\user\linefeed\%%a.in.tmp" "C:\user\out\%%a"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM