如何在不打开命令窗口的情况下从Perl执行Windows命令?

xoshrz7s  于 2022-11-15  发布在  Perl
关注(0)|答案(1)|浏览(191)

我在Win10上有一个Perl脚本,它使用system()命令运行几个不同的命令行进程,包括:
1.使用指定的.mp3文件启动Windows Media Player。
我的$cmd =“开始调用wmplayer.exe我的RadoShow.mp3”;
系统($cmd);
1.启动另一个Perl程序,该程序同时执行其他操作(特别是读取和广播一组时间码和标题)。
如果secondScript.pl。
系统($cmd2);
所有这些都能正常工作;小问题是上面的#1在每次执行系统($cmd)命令时都会启动一个新的命令行窗口。2我不得不稍后返回并关闭这些窗口。
如果我不使用“start call”,Perl脚本就不会继续到#2。
有没有一种更好的方法来执行#1,而不会让这些窗口打开?
我意识到这个问题可能更多的是关于Windows命令而不是Perl。

fslejnso

fslejnso1#

首先,如果您使用的是活动的Perl版本,则可以使用wperl.exe而不是默认的perl.exe来调用脚本。不确定这是否会隐藏脚本创建的子进程,但您可以给予一下。
如果这不起作用,那么也许你可以使用Win32::GUI:

use Win32::GUI;
  my $hw = Win32::GUI::GetPerlWindow();
  Win32::GUI::Hide($hw);

还有其他模块也提供了这个功能。祝你好运!

相关问题