2016-04-26 86 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上下文菜单选项作为默认选项运行。