“在这个时候是意外的。”

我在batch file上运行这个命令:

for %I in (*.txt *.doc) do copy %I c:\test2 

…它不断返回:

我这个时候是意外的。

这个错误的原因是什么?

如果您在批处理/ cmd文件中运行,则需要将%标记加倍

 for %%i in (*.txt *.doc) do copy %%ic:\test2 

单一的%变体只能从命令行运行。

如果从批处理文件运行,则变量需要用两个百分号表示,例如%%I ,只能从使用一个的命令行

我遇到了一个案例,我从一个名为* .cmd的文件中得到这个错误。 当我尝试访问批处理命令的第一个参数时出现错误:

 if %1 EQU "" 

一旦我在第一个参数的符号周围加上引号,警告消息就消失了:

 if "%1" EQU "" 

不是直接回答这个问题,但是如果你在任何程序,批处理命令等中遇到这个消息,那么它最有可能与你的包含"字符"的PATH有关。

例如,在Atom编辑器中,我在设置视图中收到消息。

 "\"GNU was unexpected at this time 

这是由于一个不同的程序在我的PATH中输入以下内容

 ...;C:\"Program Files"\"GNU ARM Embedded;..." 

因为这个原因,反斜杠字符会被某些程序读取,这会导致问题,因为它不是一个路径名分隔符,而是一个简单的字符。

对我来说,解决方案是从路径中删除这些" ,一切正常。

 ...;C:\Program Files\GNU ARM Embedded;... 

PS:我怀疑这是否会影响可能不支持路径名中的空格的原始程序(本例中是GNU ARM Embedded)。 如果有更多见解的人可以在评论中澄清,我会更新我的帖子。

希望这可以帮助