cmd new window 存储输出

cmd new window store output

我想打开一个新的命令提示符,运行 一个程序并将输出(现在显示在命令提示符中)保存在日志文件中。

到目前为止我使用了这个命令:

cmd /c start "window title" "C:\Program Files\app.exe"

一般我都能用

"C:\Program Files\app.exe" >out.txt

将在命令提示符下写入的内容保存在文件中。 由于需要,该程序在另一个 window 中执行,我正在努力正确设置输出。

为什么我需要额外的 window?

--> 程序会被调用多次。我需要一个许可证,我在那里受到限制。如果程序在同一个 window 中被调用,在 3 三次错误发生后,告诉我,我同时使用了多个许可证。

通过额外的打开和关闭 windows 这个 "license problem" 就解决了。 但是我当时找不到输出的解决方案。 Lua 被标记,因为此命令嵌入在 Lua 的 os.execute()

我想你正在寻找类似的东西,

start "window title" "C:\Program Files\app.exe > out.txt"

重定向在引号内,否则它将获取 start 命令本身的输出(输出为空)。

Windows 命令行有关于引用的邪恶规则:-)
此代码可按您的需要工作:

os.execute([["start "window title" cmd /C ""C:\Program Files\app.exe" > "C:\my logs\log.txt"""]])

您应该检查 start /? 命令的完整语法。您需要以下元素:

  • start 命令
  • "window title"(如果不想指定可以是""
  • /d "working directory"
  • "command name"
  • "command arguments"

... start 之后的每个标记都被引用。示例:

start "" /d "C:\Program Files\appdir" "app.exe" ">%userprofile%\Desktop\out.txt"

使用 start 命令的预期参数结构将输出重定向作为参数传递。将其传递给引号,以便 cmd 解释器知道您希望重定向 app.exe 的输出,而不是 start 命令的输出(它本身不提供任何有用的输出数据)。