我正在创建一个批处理文件来处理输入记录的文件。我已经删除了大部分代码,所以这就是问题所在。当它读取第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
答案 0 :(得分:0)
您可以使用variable substring operators修剪第一个和最后一个字符,即引号。
因此,如果VAR="Quoted String"
,那么命令echo %VAR:~1,-1%
将不会显示引号。
答案 1 :(得分:0)
在这里,您可以通过%〜运算符删除引号:
@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
输出:
E:\>foo2
E:\>type outfile.txt
HOW NOW BROWN COW
JACK AND JILL
JUST YOU & ME