2016-04-26 88 views
0

我有一個我在PowerShell ISE中編寫的腳本,可以很好地工作。 如果我將其複製並粘貼到常規PowerShell中,它甚至可以工作。然而,當我使用普通的PowerShell運行它,並將它作爲默認程序打開它時,然後雙擊它,它會打開,顯示一些紅色文本,然後關閉。PowerShell退出

有沒有辦法阻止它關閉,所以我可以查看紅色文本或這是一個可以很容易修復的常見問題?

+0

一個簡單的方法,無論如何都是一個很好的做法,就是在腳本的開頭附近使用start-transcript命令,以便將輸出記錄到文件中。 –

+0

.psq腳本不應該由PowerShell打開。例如,您可以通過名稱在PowerShell中運行它。 \ script.ps1。 – Alexan

+0

開始成績單。我扔在那裏,沒有輸出。在正常的PS中沒有文件,但是在ISE中沒有文件。所以沒有幫助。 – Captor

回答

0

嘗試從命令提示符運行使用:

powershell -noexit <path to the script> 

此外,我認爲錯誤的腳本可以從執行阻止腳本拋出可能是由於政策執行你的機器上。否則成績單將起作用。確保使用Set-ExecutionPolicy cmdlet正確設置執行策略。

+0

很確定它確定它會在這種情況下工作沒有錯誤。這並不能解釋這個問題。 – Matt

+0

你是對的@Matt。我之前沒有看到「顯示15條評論」。我的錯。我的回答仍然回答了原來的問題。不是嗎。 –

+0

我認爲這個問題現在還不清楚,這就是爲什麼有這麼多評論。在我們瞭解更多信息之前,這不能具體回答。如果這是正確的答案,那肯定是一個愚蠢的事情,但在這個時候無論如何都無法確定。 OP改變了這個令人想知道的關聯。 – Matt

0

出於安全原因,設置PowerShell腳本雙擊時運行的做法是highly discouraged。請確保您在繼續之前瞭解所涉及的風險。

您不能簡單地通過Windows資源管理器界面「將Powershell作爲默認程序」。使用PowerShell上下文菜單選項運行使用下面的命令:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" "-Command" "if((Get-ExecutionPolicy) -ne 'AllSigned') { Set-ExecutionPolicy -Scope Process Bypass }; & '%1'"

「最安全」的方式(銘記上述警告)做你正在努力實現的是使用Default Programs Editor設置使用Powershell上下文菜單選項作爲默認選項運行。