这里的批处理脚本相对较新,我一直在寻找答案,只是找不到任何东西。
到目前为止,这是我对批处理脚本的所有内容..
@echo off
set addtext="text to add includes spaces"
for /f "delims=" %%l in (file.txt) do (
echo %%l %addtext% >> tmpfile.txt
)
我想在文件的每一行添加一行文字,但我的问题是双引号。我不希望引号与文本一起显示。
我只有引号,因为我希望在每行中添加空格。
答案 0 :(得分:3)
@echo off
setlocal enableextensions disabledelayedexpansion
set "addtext=text to add includes spaces"
for /f "delims=" %%l in (file.txt) do (
>> tmpfile.txt echo %%l %addtext%
)
这应该有效。只是不要在变量的值中包含引号,而是使用它们来包装赋值。
如果字符串可能包含更多有问题的字符,则这是一个更安全的版本
@echo off
setlocal enableextensions disabledelayedexpansion
set "addtext=text to add includes spaces, > redirections & more problems !"
(for %%a in ("%addtext%") do for /f "delims=" %%l in (file.txt) do (
echo %%l %%~a
)) >> tmpfile.txt
for
可替换参数(%%a
)中,并且在请求时回显而没有引号(%%~a
)echo
的重定向),重定向将被处理为完整{{ 1}}命令。