Powershell中的批量setlocal模拟

时间:2018-04-10 10:25:59

标签: powershell batch-file powershell-v5.0

想象一下,我们有这样一个批处理脚本

@echo off
setlocal
cd C:\Users\user\Work\SomeWorkingDirectory
endlocal

因此,如果这样的脚本将从C:\Users\user\启动,那么在脚本执行后,终端中的当前目录仍然是C:\Users\user,而不是C:\Users\user\Work\SomeWorkingDirectory

所以,问题是:Powershell中有任何setlocal / endlocal类似物吗?用Google搜索,找不到。

1 个答案:

答案 0 :(得分:1)

PowerShell的范围规则与WinBatch的规则不同。

对于大多数变量,它们只能在定义它们的脚本或函数中可见。可以修改环境变量,例如$env:Path,但修改将仅在PowerShell会话期间持续存在。有关持续更改以及有关环境变量的更多信息,请参阅about_Environment_Variables

对于路径,正如您似乎要问的那样,您可以使用Push-Location Pop-Location cmdlet(默认情况下,别名为pushdpopd)。