Verifique se os arquivos no PATH existem no cmd

-1

Eu sei comando para mostrar todos os caminhos no PATH

echo %path:;=&echo.%

Mas como com o comando existchech se existe

Stepan Vanzuriak
fonte
Analise a sequência retornada em uma matriz e, em seguida, faça um loop através dela, até determinar a sequência que você procura.
Ramhound

Respostas:

0

Não há um comando de linha única que fará isso, mas eu incorporei os requisitos no seguinte código de lote: -

@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
)

Procurei maneiras de evitar isso goto, mas no final era mais simples usá-lo.

O forcomando se divide %P%em %%fe %%gno primeiro ;.

Observe o requisito para expansão atrasada, para que Pele seja expandido com seu valor atual em cada passagem do loop.

AFH
fonte
1

Simplesmente como dizer @Ramhound parse string e use para

for %%i in (%path:;=,%) do (exist %%i)
Stepan Vanzuriak
fonte
Isso não funcionará se houver espaços em branco incorporados ou certos outros caracteres (por exemplo (, )) em qualquer um dos caminhos. Além disso, qual é o existcomando? O único uso padrão de existin cmdé uma cláusula no ifcomando, por exemplo if exist "%%f"\*.* (echo %%f is a directory) else echo %%f is not a directory, que mostrará um erro se o caminho não existir, ou se for um arquivo, e não um diretório.
AFH