从批处理脚本中删除系统路径中的路径

时间:2015-07-29 12:02:44

标签: batch-file cmd

我正在尝试从批处理脚本中删除系统 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).

有什么想法吗?

谢谢!

2 个答案:

答案 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

实际上就是这样做的方式

相关问题