假设我有一个脚本文件,在它的中间(或在结尾或其他地方),我希望用户能够访问当前会话,就像没有运行脚本一样,并开始按他的意愿编写命令。
我知道这是可能的,在脚本的最后,通过运行powershell与-NoExit
参数。但是:
- 必须手动调用powershell/pwsh二进制文件并为每次调用指定参数
- 你不能在剧本中间
我知道我可以简单地通过执行powershell二进制文件来打开一个新会话,如下所示:
Some-Command
echo "current PID=$PID" # let's say PID is 12345
$var = 123
& pwsh
Another-Command
但我想访问“当前”会话。这意味着$PID
在脚本中是12345
,当我输入命令时,和。这意味着我可以访问所有具有当前值的变量(因此我可以读取$var
并获得123
),然后随时退出,并继续执行脚本。
我查看了Enter-PSHostProcess
,但它无法连接到当前进程,并且(显然)无法访问变量(我认为这是出于安全原因)。
这一切,到底有没有可能?
谢谢
PS:如果不清楚的话,我的意图并不是简单的“在执行后保持脚本打开”,我知道怎么做;它不是“提示用户输入”(意思是数据),我知道怎么做
2条答案
按热度按时间w7t8yxp51#
目前为止我最好的解决办法是
这是非常丑陋的:正如@olaf指出的,invoke-expression is to be avoided like hell
(also我担心这可能在某种程度上不能完全发挥作用?例如作用域问题、管道/中断问题等)
6kkfgxo02#
@mclayton在这里建议的完全不同的可能解决方案,使用断点: