gpt4 book ai didi

powershell - 如何防止命令/脚本更改全局环境

转载 作者:行者123 更新时间:2023-12-03 01:23:52 26 4
gpt4 key购买 nike

我需要从当前的顶级 shell 程序运行脚本块/脚本,并且希望它们保持全局范围不变。

到目前为止,我只能想到以下可能性:

 powershell -file <script>
powershell -noprofile -command <scriptblock>

问题是,它们非常慢。

例如,我希望能够做到:
mkdir newdir
cd newdir
$env:NEW_VAR = 100
ni -item f 'newfile.txt'

...以便我的shell的工作目录不会更改,并且不会在全局范围内设置 $env:NEW_VAR

还有其他替代方法可以做到这一点吗?

最佳答案

我不知道还有其他选择。 @Peter回答,每个进程都保留环境变量。

此外,如果在其中创建新的目录和文件,则将更改全局环境。因此该脚本不是完全纯真的。

在您的情况下,我将按照您的建议运行新的过程。
如果太懒了,请将其放入脚本并将其包装为try / finally:

--- script.ps1
push-location
try {
mkdir newdir
cd newdir
$env:NEW_VAR = 100
ni -item f 'newfile.txt'
} finally {
pop-location
# delete dir/file?
remove-item env:NEW_VAR
}

关于powershell - 如何防止命令/脚本更改全局环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2940572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com