2016-12-03 25 views
0

我對Win7的X64運行的ActiveState Perl 5中。該解決方案不一定是跨平臺的。執行外部應用程序和退出

我試圖用Perl腳本建立另一個應用程序有點複雜和多變的命令行參數字符串。然後我想使用參數字符串執行該外部應用程序,同時也立即退出Perl腳本。

的想法是創建一個使用不同的參數,它應該產生正確的命令行運行Perl腳本的快捷方式圖標,釀出的外部應用程序(餵養它適當的參數),然後立即消失。

我似乎無法找到任何方式做到這一點。它的工作原理,如果我使用exec(),並在命令行窗口中運行腳本(它返回到命令提示符產卵外部應用程序後馬上),但如果我創建使用相同的命令Windows快捷方式,Perl腳本只是徘徊在永遠的背景,直到產生的外部應用程序退出或手動關閉perl命令窗口。

有沒有辦法做到這一點?我試過systemexec,反引號,其他一些晦澀的東西。沒有任何工作。

+1

'的perldoc -f exec'或也許[Win32的::處理](https://metacpan.org/pod/Win32::Process) –

+1

正如我所提到的,已經嘗試過EXEC鍵。但沒有嘗試過Win32 :: Process - 並且做了這個伎倆,非常感謝! – tstevens

+0

你可能使用'EXEC「開始=> @cmdline」'已經能夠得到相同的結果,但你不顯示的代碼,所以我沒有什麼去。 –

回答

0

exec不存在於Windows。 (Perl的試圖效仿。)

如果使用systemreadpipe(又名反引號),Perl將繼續,直到孩子完成運行(雖然這將是空閒)。

你需要Win32::Processsystem('start "" ...')

+0

是的,Win32 :: Process是解決方案。 – tstevens