这个批处理文件有什么问题

这个批处理文件有什么问题
 e:
 cd \My Files
 dir a:\ >\Prt2Txt\adrv1.txt\
 pause

结果是:

 E:\My Files>nhm
 E:\My Files>e:
 E:\My Files>cd \My Files
 E:\My Files>dir a:\  1>\Prt2Txt\adrv1.txt\
 The system cannot find the path specified.
 E:\My Files>pause
 Press any key to continue . . .
  1. 多余的空格是从哪里来的?

  2. 这个“1”是从哪里来的呢?

我尝试使用完整路径名"E:\My Files\...",但“My”似乎是问题所在。

答案1

我认为问题是您正在尝试将 dir 命令的输出写入目录:

dir a:\ >\Prt2Txt\adrv1.txt\

应该

dir a:\ >\Prt2Txt\adrv1.txt

(没有尾部斜杠。)

答案2

与 Unix 类似,Windows 允许将不同的 I/O 流重定向到不同的位置,因此你可以这样做

命令参数>文件A2>文件B
将标准输出发送到fileA和标准错误fileB。标准输出是文件描述符 1,因此>相当于1>。出于某种原因,当您使用 运行批处理文件时ECHO ON,CMD 显示> 1>。我猜这是为了让事情不那么模棱两可;正如您的问题所表明的那样,它似乎造成的混乱多于清晰度。

The system cannot find the path specified.可能意味着A:E:\Prt2Txt不存在。尝试 dir a:\(不带输出重定向)并尝试,e:然后是echo test >\Prt2Txt\adrv1.txt\;您可能会看到其中一个(或两个)失败。

相关内容