批量文件问题与&符号和输入记录

问题描述 投票:0回答:2

我正在创建一个批处理文件来处理输入记录的文件。我已经删除了大部分代码,所以这就是问题所在。当它读取第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
cmd batch-file
2个回答
0
投票

您可以使用variable substring operators修剪第一个和最后一个字符,引号。

因此,如果VAR="Quoted String"然后命令echo %VAR:~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

OUTPUT:

E:\>foo2

E:\>type outfile.txt
HOW NOW BROWN COW
JACK AND JILL
JUST YOU & ME
© www.soinside.com 2019 - 2024. All rights reserved.