Jer*_*ein 3 windows-server-2003 batch-file environment-variables
假设我的路径是 C:\WINDOWS\system32\;C:\Program Files\Important\
SET NEW_PATH=C:\My\Dir\
SETX PATH "%PATH%;%NEW_PATH%"
Run Code Online (Sandbox Code Playgroud)
结果路径为:
C:\WINDOWS\system32\;C:\Program Files\Important\;C:\My\Dir"
注意路径末尾的引号。就好像 %NEW_PATH% 末尾的反斜杠逃脱了最后的引号。我需要引号,因为我的路径中有空格,但我不希望反斜杠被解释为转义字符。
在对 SETX 的调用中包含我的 PATH 的正确方法是什么?
结尾不要加反斜杠%NEW_PATH%
。
如果您开始使用随机输入而不是您控制的内容,那么您可以执行以下操作之一:
去掉右引号。这在某些情况下确实有效:
> setx foo "bar baz
> echo %foo%
bar baz
Run Code Online (Sandbox Code Playgroud)
但在其他方面表现不佳:
> setx foo "Some stuff "with" embeddded quotes
> echo %foo%
Some stuff with embeddded quotes
Run Code Online (Sandbox Code Playgroud)
但是,您一开始就遇到了这个问题,因此您在那里所做的事情充其量是危险的,因为它会破坏引用的路径(如果您的路径包含分号,则需要这样做)。
这导致我们选择以下选项:
正确转义进入命令的任何内容:
set NEW_PATH=C:\I\Hate\User\Dirs\In\The\Root\
rem Note the extra quotation marks; we're constructing the complete
rem argument to setx here.
set NEW_PATH_VAR="%PATH%;%NEW_PATH%"
rem The great escape
set NEW_PATH_VAR=%NEW_PATH_VAR:"=\"%
setx PATH %NEW_PATH_VAR%
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
2910 次 |
最近记录: |