这与我的开发项目没有直接关系,但我很好奇。最近,在经过大量的敲击之后,我将构建问题追溯到System PATH 变量中的无效条目。在我的机器上,它包含大约20个条目。我猜测必须有一种更简单的方法来验证每个条目的有效性。谁能建议一种方法来检查这个?谢谢你的时间。
答案 0 :(得分:5)
批处理文件中的代码(基于this answer)适用于我:
@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
将代码放入文本文件中,例如validatepath.bat
。
运行时,它应输出如下内容:
OK: C:\Users\abcde
NOK: C:\this\is\no\dir