繁体   English   中英

如何在Windows中的cmd.exe / c中更改PATH env

[英]How change PATH env in cmd.exe /c in Windows

我想运行这样的事情:

cmd /c "set ""Path=V:\;%Path%"" & ECHO. %Path% & PAUSE"

但是有一个问题:命令行窗口仅出现片刻,然后消失。 我创建了一个测试.bat(例如echo.1: %1和2,3 ...)来检查其行为并...

0: "V:\test.bat"
1: /c
2: "set ""Path=V:\;
3: 
(4-9 the same)

当我用例如5替换%时,第二个参数看起来像"set ""Path=V:\\;5Path5"" & ECHO. 5Path5 & PAUSE" ,但这不是我想要的。 我认为,在此shell命令中解析%Path%可能存在问题。

我尝试了aslo:

cmd /c "set ""Path=V:\;%%Path%%"" & ECHO. %%Path%% & PAUSE"
cmd /c "set ""Path=V:\;%%%Path%%%"" & ECHO. %%%Path%%% & PAUSE"
cmd /c "set ""Path=V:\;%%%%Path%%%%"" & ECHO. %%%%Path%%%% & PAUSE"
cmd /c "set ""Path=V:\;%%%%%Path%%%%%"" & ECHO. %%Path%%%%% & PAUSE"
cmd /c "set ""Path=V:\;%%%%%%%%Path%%%%%%%%"" & ECHO. %%%%%%%%Path%%%%%%%% & PAUSE"
cmd /c "set ""Path=V:\;^%Path^%"" &ECHO.^%Path^%&PAUSE"
cmd /c "set ""Path=V:\;^%%Path^%%"" &ECHO.^%Path^%&PAUSE"
cmd /c "set ""Path=V:\;\%Path\%"" &ECHO.\%Path\%&PAUSE"

我将在下次测试中编辑帖子...

编辑:我只是注意到,我什至不能简单地使用: cmd /c "echo %PATH% & PAUSE"

这似乎不起作用,因为在启动cmd之前先评估xx

cmd /c "set xx=yyyyyy & echo %xx% & PAUSE"

证明它有效,变量已正确设置:

cmd /c "set xx=yyyyyy & set xx & PAUSE"

输出:

xx=yyyyyy

其他逃避%

cmd /c "set xx=yyyyyy & ECHOxx.bat & PAUSE"

ECHOxx.bat是一个echo %xx%的脚本)

输出

yyyyyy

对于路径,您会发现自己有点复杂,但也可以正常工作:

cmd /c "set PATH=%CD%\subdir;"%PATH%" & echoxx.bat"

它的工作原理: echoxx.bat已被移到subdir目录中,并且找到了。

我来解决。 我需要什么:

cmd /c "set ""Path=V:\;%Path:~0%"" &ECHO.%Path:~0%&PAUSE"

看起来Windows甚至用运行(Win + R),CMD(.exe),ShellExec(wscript / winapi)的这种环境变量内容(用分号表示的更多路径)替换了%PATH% 因此,不能将其用作快捷方式中的参数的一部分(我需要这样做)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM