在windows / cygwin上,我希望能够将PATH变量保存到一台机器上的文件中并将其加载到另一台机器上;
用于存储我正在做的变量:
echo %PATH% > dat
然而,不确定如何在以后加载它。
set PATH=???????
由于 拉米
答案 0 :(得分:12)
只需使用:set /P PATH=< dat
您必须注意echo %PATH% > dat
在%PATH%值之后插入一个额外的空格;如果稍后将其他路径添加到PATH变量,该空间可能会导致问题。只需通过这种方式消除额外空间:echo %PATH%> dat
。
答案 1 :(得分:5)
echo %PATH%
将失败或^(这不太可能,但肯定是可能的)
更可靠的解决方案是使用:
setlocal enableDelayedExpansion
echo !path!>dat
然后你可以使用Aacini建议的方法来回读
中的值set /p "PATH=" <dat
答案 2 :(得分:3)
依赖于Cygwin,如何将命令放入保存的文件中,例如:
echo "export PATH=$PATH" > dat
然后稍后获取脚本以设置路径:
. ./dat
请注意,“sourcing”脚本(而不仅仅是执行它)是修改当前环境所必需的 - 而不仅仅是新的子环境。
答案 3 :(得分:1)
这可能是邪恶的,但在Windows上我使用它:
for /F %%g in (dat) do set PATH=%%g
这就是写文件,因为我遇到了空格
echo>dat %PATH%
答案 4 :(得分:0)
即使路径值中有空格和点,以下示例也能正常工作:
@REM Backup PATH variable value in a file
@REM Set PATHBACKUP variable with value in the file
@echo %PATH% > pathvalue.txt
@type pathvalue.txt
@for /f "delims=" %%l in (pathvalue.txt) do (
@set line=%%l
)
@set PATHBACKUP=%line%
@echo %PATHBACKUP%