use*_*150 1 build path environment-variables
这与我的开发项目没有直接关系,但我很好奇.最近,经过大量的打击,我将构建问题追溯到系统PATH变量中的无效条目.在我的机器上,它包含大约20个条目.我猜测必须有一种更简单的方法来验证每个条目的有效性.谁能建议一种方法来检查这个?谢谢你的时间.
批处理文件中的代码(基于此答案)适用于我:
@echo off
setlocal DisableDelayedExpansion
set "var=%PATH%"
set "var=%var:"=""%"
set "var=%var:^=^^%"
set "var=%var:&=^&%"
set "var=%var:|=^|%"
set "var=%var:<=^<%"
set "var=%var:>=^>%"
set "var=%var:;=^;^;%"
rem ** This is the key line, the missing quote is intention
set var=%var:""="%
set "var=%var:"=""%"
set "var=%var:;;="";""%"
set "var=%var:^;^;=;%"
set "var=%var:""="%"
set "var=%var:"=""%"
set "var=%var:"";""=";"%"
set "var=%var:"""="%"
setlocal EnableDelayedExpansion
for %%a in ("!var!") do (
endlocal
call :testdir "%%~a"
setlocal EnableDelayedExpansion
)
goto :eof
:testdir
if exist %1 echo OK: %1
if not exist %1 echo NOK: %1
Run Code Online (Sandbox Code Playgroud)
将代码放入文本文件中,例如validatepath.bat
.
运行时,它应输出如下内容:
OK: C:\Users\abcde
NOK: C:\this\is\no\dir
Run Code Online (Sandbox Code Playgroud)