Supress PowerShell提示“按任意键继续...”

时间:2019-11-18 20:12:44

标签: powershell batch-file scripting windows-server

我正在从.bat运行powershell脚本,以使其双击友好。这是代码:

powershell.exe -ExecutionPolicy unrestricted -NoExit -command "Start-Process powershell -Verb RunAs" {<Location of .ps1 file here>; <arguments>; pause }

它运行正常,但是完成后会显示“按任意键继续”,并且关闭Powershell窗口,但我需要保持打开状态,因为在脚本末尾,它显示了一些我们需要运行的其他命令来完成处理。

有什么想法吗?谢谢!

1 个答案:

答案 0 :(得分:1)

要在使用-Command(或-File)执行命令后使PowerShell窗口保持打开状态(会话仍处于活动状态),请使用CLI-NoExit参数,如您对外部 PowerShell调用的问题中所示。

然后,您将不需要交互式的延迟关闭命令,例如pause(该函数仅调用$null = Read-Host 'Press Enter to continue...')。

因此:

  • 向内部{em> ,-NoExit启动的PowerShell实例添加Start-Process参数,或者更有可能是代替;您需要滚动到右侧才能在下面的命令中查看它。

  • 从内部命令字符串中删除pause命令。

注意:我假设您实际上不需要外部-NoExit,因为它将通过进入交互式PowerShell会话无限期地阻止批处理文件,因此在下面的命令中将其省略。

powershell.exe -ExecutionPolicy unrestricted -command "Start-Process powershell -Verb RunAs '-NoExit', '-Command', '...'"

请注意,将脚本块({ ... })与Start-Process一起使用是没有意义的,因为Start-Process仅支持 strings 作为参数;因此,上面使用'...'表示传递给内部PowerShell实例的命令字符串。