Windows中与$export相当的命令是什么?

112

我正在尝试按照命令行创建目录的一些指令。这些指令如下:

$ export PROJ_HOME=$HOME/proj/111
$ export PROJECT_BASEDIR=PROJ_HOME/exercises/ex1
$ mkdir -p $PROJ_HOME

这些是Windows命令吗?有相应的Windows替代命令吗?


4
不,这些是*nix命令。在Windows中,mkdir的等效命令也是mkdir。 - Hans Passant
[set varname=value] (http://www.ntu.edu.sg/home/ehchua/programming/howto/environment_variables.html) - Abhijeet
4个回答

174

要将*nix风格的命令脚本翻译为Windows/命令批处理风格,可以按照以下方式进行:

SET PROJ_HOME=%USERPROFILE%/proj/111
SET PROJECT_BASEDIR=%PROJ_HOME%/exercises/ex1
mkdir "%PROJ_HOME%"

在Windows上,mkdir命令没有 -p 参数。根据 MKDIR /? 帮助中的描述:

如果需要,MKDIR 将创建路径中的任何中间目录。

这基本上就是*nix系统下 mkdir -p (或者对于纯粹主义者来说是 --parents) 命令的功能,详细信息可以参考手册


2
似乎在Windows10上无法工作,我需要手动操作。 - Shadoweb
2
刚在Windows10上验证过,对我有效@Shadowbob,但也许您的某个目录名称中有空格? - rene
2
使用Windows中的“SET”,这些环境变量会是永久的吗?我知道使用导出时它们只会是临时的,除非您将它们添加到您的〜/ .bashrc文件中。 - user137717
6
如果你想要修改或添加这些变量并使其永久保存,可以使用setx命令。这些变量是临时的。 - rene

5

在Windows命令提示符中,没有与导出等效的语句。

在Windows中,环境变量是复制的,因此当您从会话退出(从调用的命令提示符或设置变量的可执行文件)时,Windows中的变量将丢失。您可以通过setx将其设置为用户注册表或机器注册表,但如果您不启动新的命令提示符,则看不到它。


5
如果您安装了git-bash,可以使用export命令。

它在Windows上无法工作。 - Abhishek Sachan
@AbhishekSachan 你在使用 Git Bash 吗?我刚刚再次核对了一下,对我来说它是有效的。 - Aniket Kariya
某种程式在Windows 10上无法运行。可能是安装问题,感谢确认。 - Abhishek Sachan
谢谢,我忘记了这是一个选项。这比使用WSL要容易得多。 - Mat-KH
它起作用了,谢谢...非常有帮助...对于那些不起作用的人,请尝试给出配置文件的完整路径。 - Preetam Jakhmola

4

Windows 10及以上版本,全局变量需要以管理员身份运行,将其保留给用户永久使用。

setx myvariable myvariablevalue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接