sra*_*mij 11 windows shell cygwin batch-file windows-shell
在windows/cygwin上,我希望能够将PATH变量保存到一台机器上的文件中并将其加载到另一台机器上;
用于存储我正在做的变量:
echo %PATH% > dat
Run Code Online (Sandbox Code Playgroud)
但是,不确定以后如何加载它.
set PATH=???????
Run Code Online (Sandbox Code Playgroud)
谢谢拉米
Aac*_*ini 13
只需使用: set /P PATH=< dat
您必须注意echo %PATH% > dat在%PATH%值之后插入一个额外的空格; 如果稍后将其他路径添加到PATH变量,该空间可能会导致问题.这样就消除了额外的空间:echo %PATH%> dat.
echo %PATH% 如果PATH包含一个不带引号的&或^(这不太可能,但肯定是可能的)会失败
更可靠的解决方案是使用:
setlocal enableDelayedExpansion
echo !path!>dat
Run Code Online (Sandbox Code Playgroud)
然后你可以使用Aacini建议的读取值的方法
set /p "PATH=" <dat
Run Code Online (Sandbox Code Playgroud)
这可能是邪恶的,但在 Windows 上我使用这个:
for /F %%g in (dat) do set PATH=%%g
Run Code Online (Sandbox Code Playgroud)
这是为了写入文件,因为我遇到了空格问题
echo>dat %PATH%
Run Code Online (Sandbox Code Playgroud)
由于依赖于 Cygwin,如何将命令放入保存的文件中,例如:
echo "export PATH=$PATH" > dat
Run Code Online (Sandbox Code Playgroud)
然后稍后获取脚本来设置路径:
. ./dat
Run Code Online (Sandbox Code Playgroud)
请注意,需要“获取”脚本(而不是仅执行它)才能修改当前环境 - 而不仅仅是新的子环境。