cmd新窗口存储输出

问题描述 投票:2回答:3

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

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

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

通常我都可以使用

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

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

为什么我需要额外的窗口?

- >程序将被多次调用。我需要一个许可证,我在那里有限。如果在同一个窗口中调用该程序,则在发生错误3次之后发生错误,告诉我,我同时使用了许多许可证。

通过额外的打开和关闭窗口,这个“许可证问题”得以解决。但是我找不到输出的解决方案。 Lua被标记,因为这个命令嵌入在Lua的os.execute()

batch-file cmd lua out
3个回答
0
投票

Windows命令行有关于引用的邪恶规则:-) 此代码可根据需要使用:

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

1
投票

您应该检查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命令的输出(它本身不提供任何有用的输出数据)。


0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.