Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 如何在批处理脚本中的标记后包含空格_Windows_Batch File_Cmd - Fatal编程技术网

Windows 如何在批处理脚本中的标记后包含空格

Windows 如何在批处理脚本中的标记后包含空格,windows,batch-file,cmd,Windows,Batch File,Cmd,我正在使用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字节的

我正在使用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"

谢谢,它成功了:)但是,如果我想在FindNReplace.txt中有多行呢?例如,我的FindNReplace.txt中有两行项目,它总是使用最后一行。我如何调整代码才能使用所有行?@PeterS,这是另一个问题。您需要使用临时文件,对每一行重复此过程,使用上一步的输出作为下一步的输入。在使用此代码之前,我已经这样做了,键入c:\user\out\%a | findstr/viblg:c:\comp\standards\others.txt>c:\user\out\output\%a现在我无法将此代码与repl.bat参数集成,我如何才能在代码中包含此代码?@PeterS,答案已更新。如图所示,获取输入文件,解析,生成输出,将输出转换为输入,重复该过程。最后,将输入移动到目标文件夹。