抑制 PowerShell 提示 "Press any key to continue..."
Supress PowerShell prompting "Press any key to continue..."
我是 运行 来自 .bat 的 powershell 脚本,使其易于双击。这是代码:
powershell.exe -ExecutionPolicy unrestricted -NoExit -command "Start-Process powershell -Verb RunAs" {<Location of .ps1 file here>; <arguments>; pause }
它运行良好,但当它完成时它说 "Press any key to continue" 并且 powershell window 关闭但我需要它保持打开状态,因为在脚本末尾它显示了一些我们需要的额外命令运行 完成流程。
有什么想法吗?谢谢!
要在使用 -Command
(或 -File
)执行命令后保持 PowerShell window 打开(其会话处于活动状态),请使用 CLI 的 -NoExit
参数 ,正如您在 outer PowerShell 调用的问题中所显示的那样。
然后您就不需要交互式延迟关闭命令,例如 pause
(这是一个简单地调用 $null = Read-Host 'Press Enter to continue...'
的函数)。
因此:
将 -NoExit
参数添加到 内部 、Start-Process
启动的 PowerShell 实例,或者 - 更有可能 - 改为;您需要向右滚动才能在下面的命令中看到它。
从内部命令字符串中删除 pause
命令。
注意:我假设您实际上并不需要外部 -NoExit
,因为它会通过进入交互式 PowerShell 会话无限期地阻止批处理文件,因此在下面的命令中省略了它。
powershell.exe -ExecutionPolicy unrestricted -command "Start-Process powershell -Verb RunAs '-NoExit', '-Command', '...'"
请注意,在 Start-Process
中使用脚本块 ({ ... }
) 没有意义,因为 [=17] 仅支持 字符串 作为参数=];因此,上面使用 '...'
来表示要传递给内部 PowerShell 实例的命令字符串。
我是 运行 来自 .bat 的 powershell 脚本,使其易于双击。这是代码:
powershell.exe -ExecutionPolicy unrestricted -NoExit -command "Start-Process powershell -Verb RunAs" {<Location of .ps1 file here>; <arguments>; pause }
它运行良好,但当它完成时它说 "Press any key to continue" 并且 powershell window 关闭但我需要它保持打开状态,因为在脚本末尾它显示了一些我们需要的额外命令运行 完成流程。
有什么想法吗?谢谢!
要在使用 -Command
(或 -File
)执行命令后保持 PowerShell window 打开(其会话处于活动状态),请使用 CLI 的 -NoExit
参数 ,正如您在 outer PowerShell 调用的问题中所显示的那样。
然后您就不需要交互式延迟关闭命令,例如 pause
(这是一个简单地调用 $null = Read-Host 'Press Enter to continue...'
的函数)。
因此:
将
-NoExit
参数添加到 内部 、Start-Process
启动的 PowerShell 实例,或者 - 更有可能 - 改为;您需要向右滚动才能在下面的命令中看到它。从内部命令字符串中删除
pause
命令。
注意:我假设您实际上并不需要外部 -NoExit
,因为它会通过进入交互式 PowerShell 会话无限期地阻止批处理文件,因此在下面的命令中省略了它。
powershell.exe -ExecutionPolicy unrestricted -command "Start-Process powershell -Verb RunAs '-NoExit', '-Command', '...'"
请注意,在 Start-Process
中使用脚本块 ({ ... }
) 没有意义,因为 [=17] 仅支持 字符串 作为参数=];因此,上面使用 '...'
来表示要传递给内部 PowerShell 实例的命令字符串。