“此时此刻意外。”

时间:2011-10-14 15:03:34

标签: windows error-handling batch-file

我在批处理文件上运行此命令:

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

......它不断回归:

  

此时我出乎意料。

此错误的原因是什么?

4 个答案:

答案 0 :(得分:50)

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

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

单个%变体仅适用于命令行。

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

if %1 EQU ""

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

if "%1" EQU ""

答案 3 :(得分:1)

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

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

"\"GNU was unexpected at this time

这是由于一个不同的程序将我的PATH放入以下条目

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

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

我的解决方案是从PATH中删除",一切正常。

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

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

希望这有帮助