Batch file cmd新窗口存储输出

Batch file cmd新窗口存储输出,batch-file,cmd,lua,out,Batch File,Cmd,Lua,Out,我想打开一个新的命令提示符,运行一个程序,并将输出(现在显示在命令提示符中)保存在日志文件中 到目前为止,我使用了以下命令: cmd/c启动“窗口标题”“c:\Program Files\app.exe” 通常我可以使用 “C:\Program Files\app.exe”>out.txt 将在命令提示符下写入的内容保存到文件中。 由于需要在另一个窗口中执行程序,我正在努力正确设置输出 为什么我需要额外的窗户 -->该程序将被调用多次。我需要许可证,我在那里受限制。如果在同一个窗口中调用该程序,

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

到目前为止,我使用了以下命令:

cmd/c启动“窗口标题”“c:\Program Files\app.exe”

通常我可以使用

“C:\Program Files\app.exe”>out.txt

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

为什么我需要额外的窗户

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

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

我想您正在寻找类似

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

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

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

os.execute([[“开始”窗口标题“cmd/C”“C:\Program Files\app.exe”>“C:\my logs\log.txt”“”]))

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

  • start
    命令
  • “窗口标题”
    (如果不想指定,可以是
  • /d“工作目录”
  • “命令名”
  • “命令参数”
。。。其中,
start
之后的每个令牌都被引用。例如:

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

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

您的问题不清楚,您已经向我们展示了如何将输出设置为文件,那么,为什么要设置它呢?为什么要使用命令
start
cmd/C
已启动将标准控制台输出重定向到文件所需的命令进程。命令
start
将启动另一个命令过程。所以我不认为有任何理由使用命令
start
。带有命令
%SystemRoot%\System32\cmd.exe/C窗口标题的快捷方式(*.lnk)&%ProgramFiles%\app.exe“>%UserProfile%\Desktop\out.txt”
在已启动的命令进程中不启动第二个命令进程的情况下执行完全相同的操作。由于使用许可证应用程序的频率高于购买的许可证授予的频率,因此,您似乎正在搜索解决方案来解决此限制。如果您需要更多的许可证,那么您应该购买更多的许可证,而不仅仅是解决因许可证不足而造成的限制。依我看,在许可协议的限制范围内工作没有什么错。试图实际规避上述许可协议的执行是有问题的。@Compo:我之所以挣扎,是因为语法和qouting规则对我来说相当新。谢谢。您了解问题并找到了解决方案。简短补充:如何使用当前路径标记窗口。因此,我需要的不是
“窗口标题”
,而是
“当前路径\变量”
。其中
variable
是Lua变量(字符串类型)。只需连接字符串:
os.execute([[“start”]]…var..[[“cmd…])