通过命令行向变量和环境变量添加目录非常简单。这需要很多努力,但我能够从一个变量中删除一个子字符串,正如您在下面看到的(尽管它确实让人讨厌
%
出于某种原因签名)。无论如何,正如您在下面看到的
set
不适用于
setx
。是否有任何方法可以从
%PATH%
命令行环境变量?
对于我做的测试,
echo %path%
:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\WINDOWS\System32\LibreSSL\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\addtopath;C:\Users\thisguy\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Microsoft VS Code\bin;\\test\test
我要做的是删除
\\test\test
在命令行的最后。所以
set cut=\\test\test
echo %cut%
\\test\test
接下来,我设置
%path%
到
oldname
:
set oldname=%path%
echo %oldname%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\WINDOWS\System32\LibreSSL\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\addtopath;C:\Users\thisguy\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Microsoft VS Code\bin;\\test\test
到目前为止效果不错。
现在是删除的技巧
\\测试\测试
正在使用
call
使用一些基本的变量编辑。继续,用其他方法尝试一下,我花了很长时间才弄明白这一部分:
call set newname=%%oldname:%cut%=%%
echo %newname%
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\WINDOWS\System32\LibreSSL\;C:\ProgramData\chocolatey\bin;C:\Program Files\PuTTY\;C:\Program Files\Git\cmd;C:\addtopath;C:\Users\thisguy\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\Microsoft VS Code\bin;% **<--------(pesky percent sign lingers)**
天才我现在非常高兴。所以,大部分情况下一切都很好,对吧?好吧,看看这个:
call setx path=%%path:%cut%=%%
我能得到什么?
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
应该是一样的,不是吗?我不在乎如何解决这个问题,我只想能够从
%路径%
来自命令行。