【问题标题】:PowerShell exitingPowerShell 退出
【发布时间】:2016-08-20 17:03:58
【问题描述】:

我在 PowerShell ISE 中编写了一个运行良好的脚本。 如果我将它复制并粘贴到常规 PowerShell 中,它甚至可以工作。但是,当我使用常规 PowerShell 运行它时,将其设置为打开它的默认程序,然后双击,它只会打开,显示一些红色文本,然后关闭。

有没有办法阻止它关闭,以便我可以查看红色文本,或者这是一个可以轻松解决的常见问题?

【问题讨论】:

  • 一种简单的方法,也是一种很好的习惯,就是在脚本开头附近使用 start-transcript 命令,以便将输出记录到文件中。
  • .psq 脚本不应由 PowerShell 打开。您可以在 PowerShell 中按名称运行它,例如 . .\script.ps1.
  • 开始转录。我把它扔在那里,没有输出。在普通 PS 中没有制作文件,但在 ISE 中却制作了。所以那里没有帮助。
  • 有没有办法让脚本只需双击就可以运行?

标签: powershell powershell-4.0 powershell-ise


【解决方案1】:

尝试使用以下命令从 cmd 提示符运行:

powershell -noexit <path to the script> 

此外,我认为错误脚本可能是由于您机器上的执行策略阻止脚本执行造成的。否则成绩单会起作用。确保使用Set-ExecutionPolicy cmdlet 正确设置了执行策略。

【讨论】:

  • 很确定它可以在这种情况下正常工作而不会出错。这并不能解释问题。
  • 你是对的@Matt。我以前没有看过“再显示 15 个 cmets”。我的错。我的回答仍然回答了最初的问题。是不是。
  • 我认为这个问题现在还不清楚,这就是为什么有这么多 cmets。在我们了解更多信息之前,无法具体回答这个问题。如果这是正确的答案,那么它肯定是一个骗局,但目前还不能确定。 OP 改变了关联,这很奇怪。
【解决方案2】:

出于安全原因,将 Powershell 脚本设置为在双击时运行的做法是 highly discouraged。在继续之前,请确保您了解所涉及的风险。

您不能简单地通过 Windows 资源管理器界面“将 Powershell 设为默认程序”。 Run with Powershell 上下文菜单选项使用以下命令:

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

“最安全”的方式(记住上述警告)是使用 Default Programs EditorRun with Powershell 上下文菜单选项设置为默认值.

【讨论】:

    猜你喜欢
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-08-23
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    相关资源
    最近更新 更多