如何在 Windows 上为单个命令设置环境变量?

如何在 Windows 上为单个命令设置环境变量?

ENVVAR=abc command有没有办法像在 Unix 上一样在 Windows 上为单个命令设置环境变量?

Windows 上由命令设置的变量set似乎会保留在以下命令中,但这不是我想要的。

答案1

有没有办法为单个命令设置环境变量?

从当前cmdshell:

您必须自己清除变量。

set "ENVVAR=abc" && dir & set ENVVAR=

从批处理文件:

您可以使用setlocalendlocal

@echo off
setlocal 
  set "ENVVAR=abc" && dir
endlocal

使用子cmd壳:

您可以使用它cmd /c来创建一个子壳。

该变量在子 shell 中设置,不会影响父 shell(正如评论中指出的那样jpmc26)。

cmd /C "set ENVVAR=abc && dir"

进一步阅读

  • Windows CMD 命令行的 AZ 索引- 与 Windows cmd 行相关的所有事物的绝佳参考。
  • 命令- 启动一个新的 CMD shell 并(可选)运行命令/可执行程序。
  • 端局部- 结束批处理文件中环境更改的本地化。将变量从一个批处理文件传递到另一个批处理文件。
  • 重定向- 重定向运算符。
  • - 显示、设置或删除 CMD 环境变量。使用 SET 所做的更改将仅在当前 CMD 会话期间保留。
  • 设置本地- 设置选项来控制批处理文件中环境变量的可见性。

相关内容