好的,所以我有两个文件,其中包含除一行之外的相同文本,我正在做的是将文件中的不同行复制%source%
到%target%
文件中(本质上只是将整个文件逐行写入新的文件)。我遇到的问题是,有时源文件会有一个用 ! 表示的内联注释。它不会转换为目标文件。我目前正在运行的代码如下:
setlocal EnableDelayedExpansion
(
for /F "tokens=1* delims=:" %%a in ('findstr /N "^" %source%') do (
set "line=%%b"
if defined line set "line=!line:%replace%=%replaced%!"
echo(!line!
)
) > %target%
endlocal
goto :eof
为方便起见,源文件和目标文件一样是一个简单的文本文件。尝试了其他几个“绕过!” 延迟扩展的问题,但似乎找不到适合这种情况的问题,因为我不知道文件在哪里!会发生。我也尝试将 setlocal/endlocal 移动到 for 循环中,但这似乎也不起作用。
%source%
文件中会导致问题的任何给定行的格式为:
JARG 0.1000 1.2000
LINE 0.5000 1.0000 !This line tells us what is in the line
SMAP 0.0000 1.1100
谢谢你的帮助。