Batch file 批量回显单词returntofile

Batch file 批量回显单词returntofile,batch-file,cmd,Batch File,Cmd,我有一个for循环来遍历一个文件,然后输出到另一个文件,但是我需要将单词“return”输出到该文件 For /F "usebackq tokens=1-2 delims=," %%a in (%filein%) Do ( echo if (%%a) return %%b; >> %fileout% ) 我不断收到“此时返回出乎意料”的消息,我尝试了^和引号的变体,但运气不好。 有人知道如何在文件中回显“return”一词吗?谢谢你使用任何一种 For /F "usebackq

我有一个for循环来遍历一个文件,然后输出到另一个文件,但是我需要将单词“return”输出到该文件

For /F "usebackq tokens=1-2  delims=," %%a in (%filein%) Do (
echo if (%%a) return %%b; >> %fileout%
)
我不断收到“此时返回出乎意料”的消息,我尝试了^和引号的变体,但运气不好。 有人知道如何在文件中回显“return”一词吗?谢谢你

使用任何一种

For /F "usebackq tokens=1-2 delims=," %%a in (%filein%) Do (
    echo if (%%a^) return %%b;>> %fileout%
)

要通过ECHO输出的代码中的右括号
由Windows命令解释器解释为命令体的命令块结尾。解决方案是使用插入符号
^
将其转义为文字字符

在第二个版本中,执行的单个命令直接指定,根本不使用命令块


此外,分号和重定向运算符之间的空格
>
也会被删除,因为此空格也是由ECHO输出的,因此也会作为尾随空格写入输出文件。

您忘记了第二个ECHO,您将
^
放在哪里了?在
%%a)
中的
前面应该只需要一个。导致问题的是return这个词,而绝对不是return这个词<代码>返回不是批处理中的关键字。命令提示符在
%%a
之后看到
,认为这是
for
循环的右括号,并尝试将
return
作为命令运行。如果您不使用括号,代码将起作用。“谢谢”评论被认为是非建设性的,正如@Mofi所说的,您应该查看链接和常见问题部分。
For /F "usebackq tokens=1-2 delims=," %%a in (%filein%) Do echo if (%%a) return %%b;>> %fileout%