bat文件中的启动命令创建一个零字节日志

时间:2017-08-30 09:59:43

标签: windows perl batch-file command-line

我使用Start命令(在命令提示符下)同时执行某些程序。我刚刚使用了这样的命令:

start time_calulation.pl > d:\Public\Sample-Programs\testlog.txt
  • 程序正确执行,但testlog.txt日志文件没有数据,它是一个0(零)字节文件。

  • Start之后,日志文件创建完美,但我需要使用Start

请有人帮我找到解决方案。

1 个答案:

答案 0 :(得分:1)

帖子中的启动命令告诉Windows执行以下操作:使用"启动"打开一个新的命令提示符,运行程序" time_calulation.pl"在新的命令提示符中并管道"启动"的STDOUT。命令到文件" d:\ Public \ Sample-Programs \ testlog.txt"。

我的第一个倾向是修改Perl脚本来处理创建日志文件。由于您还没有共享该脚本的源代码,因此我将提供不同的解决方案。

首先,创建调用Perl脚本的批处理文件(time_calulation.bat),并将Perl脚本的STDOUT管道化为文件。在您的示例中,批处理文件将包含:

perl time_calulation.pl > d:\Public\Sample-Programs\testlog.txt

有人可能会想要做这样的事情:

start time_calulation.bat

但是,新打开的命令提示符不会消失。我想在运行Perl脚本后确实希望它消失。在start命令的帮助中描述了此行为。它指的是cmd.exe的/ K选项。如果查看cmd.exe的帮助,则有一个/ C选项可以使命令提示符终止。

所以我相信以下会做你想做的事:

start cmd.exe /C time_calulation.bat

这将打开一个新的命令提示符以运行批处理文件,并在批处理文件完成后关闭该新命令提示符。该批处理文件正在运行Perl脚本,并将Perl脚本的STDOUT传送到文件。