我正在创建一个批处理文件来处理输入记录的文件。我已经删除了大部分代码,所以这就是问题所在。当它读取第3条记录时,使用&符号,作业不写入输出记录,除非我在%%H
变量周围加上双引号。但是,当我这样做时,它会将"
添加到记录的第一个和最后一个字节。我想基本上复制记录,我也在做一些其他的处理。
有没有办法去除“正面和背面附加的”,或者ECHO是否有办法处理&符号?谢谢!
输入文件有三条记录:
HOW NOW BROWN COW
JACK AND JILL
JUST YOU & ME
脚本如下:
set infile=D:\file.txt
set outfile=D:\outfile.txt
for /F "tokens=*" %%H in (%infile%) do (CALL :Loop "%%H")
rem for /F "tokens=*" %%H in (%infile%) do (CALL :Loop %%H)
GOTO :Loop_Exit
:Loop
echo %* >> %outfile%
:Loop_Exit
pause
您可以使用variable substring operators修剪第一个和最后一个字符,引号。
因此,如果VAR="Quoted String"
然后命令echo %VAR:~1,-1%
将不会显示引号。
在这里,您可以通过%〜运算符删除引号:
@echo off
set infile=e:\file.txt
set outfile=e:\outfile.txt
for /F "tokens=*" %%H in (%infile%) do (
call :Loop "%%H"
)
exit /b 0
:Loop
for %%a in (%*) do echo %%~a >> %outfile%
exit /b 0
OUTPUT:
E:\>foo2
E:\>type outfile.txt
HOW NOW BROWN COW
JACK AND JILL
JUST YOU & ME