Finding specific folder within path, and add altered version to the %PATH%

36 Views Asked by At

I'm looking to find path with client_1 string, replace client_1 part with client_1\bin, and set PATH=%PATH%;%newpath%.

I've tried

@echo off
setlocal EnableDelayedExpansion

set newpath=
for %%a in ("%path:;=";"%") do (
    rem @echo %%~a
    if [%newpath%]==[] (
        echo %%~a | findstr /I /C:"client_1" >nul
        if not errorlevel 1 (
            set newpath=%%~a
            set newpath=!newpath:client_1\bin=client_1!
        )
    )
)

set PATH=%PATH%;%newpath%
1

There are 1 best solutions below

0
mpapec On

Substitution part was also wrong beside missing EnableDelayedExpansion, and condition around newpath var also needed to use ! instead of %.

@echo off
setlocal EnableDelayedExpansion

set newpath=
for %%a in ("%path:;=";"%") do (
    rem @echo %%~a
    if [!newpath!]==[] (
        echo %%~a | findstr /I /C:"client_1" >nul
        if not errorlevel 1 (
            set newpath=%%~a
            set newpath=!newpath:client_1=client_1\bin!
        )
    )
)

set PATH=%PATH%;%newpath%