如何让PowerShell在脚本运行过程中提供交互式命令提示符?
实现PowerShell脚本中途进入当前会话并继续执行的方法
你要的需求完全可以实现,核心是用PowerShell的**嵌套提示(Nested Prompt)**功能:
- 在脚本需要暂停交互的位置插入
$host.EnterNestedPrompt()命令,执行到这一行时会直接切换到当前会话的交互式模式:- 当前进程的
$PID保持不变,所有已定义的变量、函数、环境配置都能直接访问和修改 - 你可以像正常操作PowerShell一样输入任意命令,完成后输入
exit就能退出交互模式,脚本会从当前位置继续执行后续代码
- 当前进程的
示例代码:
Some-Command Write-Host "current PID=$PID" # 假设PID为12345 $var = 123 # 进入当前会话的交互模式 $host.EnterNestedPrompt() # 用户输入exit后,继续执行后续命令 Another-Command
补充说明:
- 这个方法无需启动新进程,完全复用当前会话上下文
- 可以在脚本的任意位置(开头、中间、末尾)插入该命令,实现多次暂停交互
- 如果需要提示用户,可以在调用前添加提示信息,比如:
Write-Host "输入任意命令操作当前会话,完成后输入exit继续脚本执行"
内容的提问来源于stack exchange,提问作者aetonsi
相关产品推荐
相关产品推荐

