检查 PATH 中的文件是否存在于 cmd 中

检查 PATH 中的文件是否存在于 cmd 中

我知道命令显示 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)

相关内容