Batch file 在变量中使用引号批处理时出现问题
这里的批处理脚本相对较新,我一直在到处搜索答案,但没有找到任何东西 以下是我到目前为止对批处理脚本的了解Batch file 在变量中使用引号批处理时出现问题,batch-file,quotes,Batch File,Quotes,这里的批处理脚本相对较新,我一直在到处搜索答案,但没有找到任何东西 以下是我到目前为止对批处理脚本的了解 @echo off set addtext="text to add includes spaces" for /f "delims=" %%l in (file.txt) do ( echo %%l %addtext% >> tmpfile.txt ) 我希望在文件中的每一行都添加一行文本,但我的问题在于双引号。我不希望引号与文本一起显示 我只有引号,因为文本字符
@echo off
set addtext="text to add includes spaces"
for /f "delims=" %%l in (file.txt) do (
echo %%l %addtext% >> tmpfile.txt
)
我希望在文件中的每一行都添加一行文本,但我的问题在于双引号。我不希望引号与文本一起显示我只有引号,因为文本字符串中有空格,我希望添加到每一行
@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
%%a
)的中,并在请求时回显,不带引号(%%~a
)
echo
重定向),为完整的for
命令处理重定向@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
%%a
)的中,并在请求时回显,不带引号(%%~a
)
echo
重定向),为完整的for
命令处理重定向@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
%%a
)的中,并在请求时回显,不带引号(%%~a
)
echo
重定向),为完整的for
命令处理重定向@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
%%a
)的中,并在请求时回显,不带引号(%%~a
)
echo
重定向),为完整的for
命令处理重定向@jeb,我已经复制并粘贴了答案中的代码(已禁用延迟扩展),它可以正常工作。要使它像您所指出的那样工作,需要在变量定义上转义感叹号,这是我不想做的。并且,在启用延迟扩展的情况下,如果源文件包含
在它的数据中,输出将是错误的。你是对的,我读了启用延迟扩展
,但你写了启用扩展
。@jeb,我已经复制并粘贴了答案中的代码(已禁用延迟扩展),它可以工作。要使它像您所指出的那样工作,需要在变量定义上转义感叹号,这是我不想做的。并且,在启用延迟扩展的情况下,如果源文件包含
在它的数据中,输出将是错误的。你是对的,我读了启用延迟扩展
,但你写了启用扩展
。@jeb,我已经复制并粘贴了答案中的代码(已禁用延迟扩展),它可以工作。要使它像您所指出的那样工作,需要在变量定义上转义感叹号,这是我不想做的。并且,在启用延迟扩展的情况下,如果源文件包含
在它的数据中,输出将是错误的。你是对的,我读了启用延迟扩展
,但你写了启用扩展
。@jeb,我已经复制并粘贴了答案中的代码(已禁用延迟扩展),它可以工作。要使它像您所指出的那样工作,需要在变量定义上转义感叹号,这是我不想做的。并且,在启用延迟扩展的情况下,如果源文件包含
在其数据中,输出将是错误的。您是对的,我读了enabledayedexpansion
,但您写了enabledextension
。。。