我知道命令显示 PATH 中的所有路径
echo %path:;=&echo.%
但是如何使用命令exist
检查是否存在
答案1
没有一行命令可以做到这一点,但我已将要求合并到以下批处理代码中:-
@echo off
setlocal enabledelayedexpansion
set P=%PATH%
:Loop
for /f "delims=; tokens=1*" %%f in ("!P!") do (
if exist "%%f"\*.* ( echo "%%f": valid ) else ( echo "%%f": not a directory )
set P=%%g
if not "%%g" == "" goto Loop
)
我寻找过避免的方法goto
,但最终还是使用它更简单。
该for
命令在第一个 处拆分%P%
为%%f
和。%%g
;
注意延迟扩展的要求,这样P
在循环的每次通过时它都会使用其当前值进行扩展。
答案2
就像说@Ramhound解析字符串并使用
for %%i in (%path:;=,%) do (exist %%i)