有没有办法为单个命令设置环境变量?
从目前来看 cmd
贝壳:
你必须自己清除变量。
set ENVVAR=abc && dir & set ENVVAR=
从批处理文件:
您可以使用 setlocal
和 endlocal
。
@echo off
setlocal
set ENVVAR=abc && dir
endlocal
使用孩子 cmd
贝壳:
您可以使用 cmd /c
创建一个子shell。
该变量在子shell中设置,不会影响父shell(如注释中所指出的那样) jpmc26 )。
cmd /C "set ENVVAR=abc && dir"
进一步阅读
- Windows CMD命令行的A-Z索引 - 与Windows cmd相关的所有内容的出色参考。
- CMD - 启动新的CMD shell并(可选)运行命令/可执行程序。
- ENDLOCAL - 批量文件中环境变化的最终本地化。将变量从一个批处理文件传递到另一个。
- 重定向 - 重定向运算符。
- 组 - 显示,设置或删除CMD环境变量。使用SET进行的更改将仅在当前CMD会话期间保留。
- SETLOCAL - 设置选项以控制批处理文件中环境变量的可见性。