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”是从哪里来的呢?
我尝试使用完整路径名"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\
;您可能会看到其中一个(或两个)失败。