运行批处理文件后,在命令行中显示额外字符

时间:2016-01-21 13:05:20

标签: windows batch-file cmd

我想从文本文件中运行一些diskpart命令并将其输出保存到另一个文本文件。这是我的批处理文件中写的,我想这样做。

DISKPART /S E:\CMD.TXT > E:\OUT.TXT
PAUSE

当我运行它时(即使是管理员)它也不能很好地工作,这是用CMD的黑屏写的:

DISKPART /S E:\CMD.TXT  1>E:\OUT.TXT
PAUSE

额外的1使它无法正常工作。那是什么?亲爱的朋友,我怎么解决呢?

1 个答案:

答案 0 :(得分:0)

Windows支持许多"标准设备"

  

0是标准输入(stdin) - 通常分配给键盘   1是标准输出(标准输出) - 通常分配给控制台
  2是标准错误(stderr) - 通常分配给控制台

所以,你可以写一个程序接受来自stdin的输入并将结果写入stdout并将错误写入stderr(并非所有程序都使用stderr)

当您使用重定向器(<>)重定向输入或输出时,您可以根据需要将输入分配给文件,或将输出或错误直接分配给文件。

stdout和stderr的单独重定向是Windows系列的新系列(2K,XP,Vista,7,8,10),>被认为是stdout gets redirected。要明确重定向stdout ,您需要使用1>。要明确重定向stderr ,您需要使用2>

Windows插入1表示stdout正在被重定向,但不是stderr

所以 - 报道的内容并没有什么不妥。

你的命令是什么意思?当E:E:操作的主题时,Windows会反对尝试在diskpart上创建文件吗?