为什么此错误消息出现/在/命令之前?

时间:2014-04-08 23:26:30

标签: windows cmd

我的剧本:

echo hello
FOR /F %%G IN temp\clist.txt DO type %%G

输出:

S:\TLIB admin\Sets' choicelist orphans>echo hello
hello
temp\clist.txt was unexpected at this time.

S:\TLIB admin\Sets' choicelist orphans>FOR /F %G IN temp\clist.txt DO type %G

S:\TLIB admin\Sets' choicelist orphans>

2 个答案:

答案 0 :(得分:1)

这假设临时文件夹位于当前工作目录中。

@echo off
echo hello
FOR /F "usebackq delims=" %%G IN ("temp\clist.txt") DO echo %%G

如果您只想type该文件,也可以使用此功能。

type "temp\clist.txt"

答案 1 :(得分:1)

为什么在命令之前显示错误?因为问题不是在命令执行时提出,而是在命令解析时提出。

当解析器读取该行并尝试将其转换为该行要执行的内容的有效表示时,它会看到for命令,但该行不能被解释为有效命令(如在其他答案/注释中说明,因此解析器将错误描述输出到stderr(默认情况下是控制台),如果启用了echo,则无法解释的文字将被发送到stdout,但不会被执行,因为它已经解析器丢弃。