Я знаю команду, чтобы показать все пути в PATH
echo %path:;=&echo.%
Но как с командой exist
чеч, если существует
Я знаю команду, чтобы показать все пути в PATH
echo %path:;=&echo.%
Но как с командой exist
чеч, если существует
Просто, как сказать @Ramhound разбор строки и использовать для
for %%i in (%path:;=,%) do (exist %%i)
Нет такой однострочной команды, которая сделала бы это, но я включил требования в следующий пакетный код:-
@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
будет расширяться с его текущим значением на каждом проходе цикла.