我正在尝试从批处理脚本中删除系统 PATH
环境变量中的变量路径。
例如,如果MY_DIR=C:\MyDir
,我想从MY_DIR
删除PATH
。
我已经尝试了
setlocal EnableDelayedExpansion
call setx /M PATH %%PATH:%MY_DIR%=%%
但它失败并显示以下错误消息:
ERROR: Invalid syntax. Default option is not allowed more than '2' time(s).
有什么想法吗?
谢谢!
答案 0 :(得分:0)
@echo off
setlocal enableDelayedExpansion
set "_path="
for %%# in ("%path:;=";"%") do (
echo %%#
if /i "%%~#" neq "C:\Docker" (
set "_path=!_path!;%%~#"
)
)
set "path=%_path%"
echo %path%
endlocal
答案 1 :(得分:0)
@echo off
setlocal enabledelayedexpansion
set newpath=!path:%MY_DIR%=!
setx path %newpath% /M
应该可以做到这一点,虽然只是部分测试
编辑:经过一些测试后,结果显示
@echo off
setlocal enabledelayedexpansion
set newpath=!path:%MY_DIR%=!
set newpath=%newpath:;;=;%
setx path %newpath% >nul
实际上就是这样做的方式