![如何在 Windows 上为单个命令设置环境变量?](https://linux22.com/image/1485710/%E5%A6%82%E4%BD%95%E5%9C%A8%20Windows%20%E4%B8%8A%E4%B8%BA%E5%8D%95%E4%B8%AA%E5%91%BD%E4%BB%A4%E8%AE%BE%E7%BD%AE%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%EF%BC%9F.png)
ENVVAR=abc command
有没有办法像在 Unix 上一样在 Windows 上为单个命令设置环境变量?
Windows 上由命令设置的变量set
似乎会保留在以下命令中,但这不是我想要的。
答案1
有没有办法为单个命令设置环境变量?
从当前cmd
shell:
您必须自己清除变量。
set "ENVVAR=abc" && dir & set ENVVAR=
从批处理文件:
您可以使用setlocal
和endlocal
。
@echo off
setlocal
set "ENVVAR=abc" && dir
endlocal
使用子cmd
壳:
您可以使用它cmd /c
来创建一个子壳。
该变量在子 shell 中设置,不会影响父 shell(正如评论中指出的那样jpmc26)。
cmd /C "set ENVVAR=abc && dir"