繁体   English   中英

如何在命令行中使用cmd.exe将输出保存到文件中?

[英]How Can I save my output to files with using cmd.exe in command line?

我正在尝试运行cmd.exe "D:a.bat"但是什么也没得到。 当我通过双击运行批处理文件时,它可以工作。

批处理文件中的代码是:

echo teztttttt >> a.txt

有人可以帮助我了解为什么使用cmd.exe运行命令无法产生预期的结果。

通常,您不需要调用cmd.exe即可执行批处理脚本。 一个批处理脚本调用另一个批处理脚本的典型方法是使用call "D:a.bat" >> a.txt

但是我认为您有充分的理由通过cmd.exe运行脚本。

阅读文档(从命令提示符处输入cmd /? ),您将看到必须在命令前加上/C

cmd.exe /c "D:a.bat"

所显示的代码不是问题,但是如果仔细阅读帮助,您将发现cmd.exe如何处理引号有些有趣。

如果必须由于空格和/或毒害字符而对脚本加引号,并且随后的引数也带有引号,则您可能无法获得所需的内容,因为cmd.exe会删除第一个和最后一个引号。

例如:

cmd.exe /c "my script.bat" "this&that"

将尝试执行(很可能失败)

my script.bat" "this&that

哪里

  • my是第一个程序名称,而script.bat" "this是第一个参数
  • &是命令串联运算符(不加引号或转义)
  • that是第二个命令

通过将整个命令行包含在一组额外的转义引号中可以解决此问题:

cmd.exe /c ^""my script.bat" "this&that"^"

外引号最初是转义的,因此正确地引用了& 然后,当cmd.exe去除外引号时,您将获得正确的命令字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM