2014-10-29 28 views
0

Eclipse IDE有一個可以運行外部工具的功能。我用它來運行批處理腳本。奇怪的是,如果批處理腳本運行powershell命令,powershell命令將永遠不會退出,直到我輸入。這是特別奇怪的,因爲它在cmd中運行時會退出。我應該如何糾正我的腳本,使其通過eclipse外部工具按預期運行?如何告訴eclipse外部工具執行完畢?

當前腳本(foo.bat):

@echo off 
echo "Hello 1" 
REM Configure this to your installation of maven. 
SET "CMD=C:\foo.ps1" 

REM Reformat args to be Powershell friendly. 
SET "ARGS=%*" 
SET "ARGS=%ARGS: =' '%" 
PowerShell.Exe -Command "%CMD%" '%ARGS%' 
echo "Hello 2" 
EXIT /B 

在CMD,我看到 「Hello 1」 時,%CMD%時的輸出,而 「你好2」。在Eclipse中,我看到「Hello 1」,即%CMD%的輸出,然後永久掛在進度選項卡中,直到我單擊控制檯窗口並按Enter鍵。

我試着將Non-Inractive標誌傳遞給Powershell。我試圖讓我的Powershell腳本在最後回顯一個換行符。不知道如何讓這個「只是工作」。

+0

嘗試在命令的末尾添加一個'exit'? – arco444 2014-10-29 15:35:25

回答

0

找到了答案。我需要添加一個NUL重定向到我的Powershell命令的末尾。所以它看起來像這樣:

@echo off 
REM Configure this to your installation of maven. 
SET "CMD=C:\foo.ps1" 

REM Reformat args to be Powershell friendly. 
SET "ARGS=%*" 
SET "ARGS=%ARGS: =' '%" 
PowerShell.Exe -Command "%CMD%" '%ARGS%' < NUL 

請注意,我也刪除在我的問題中發現的腳本代碼dubugging。如果你重新添加代碼,你會發現它現在可以迴應所有的事情。

相關問題