2010-11-05 44 views
3

J'ai besoin d'analyser la liste% PATH% dans un script .BAT, mais je n'ai pas beaucoup de chance avec les chemins qui contiennent des espaces. Ce qui précède analyse les espaces (par défaut), mais je dois analyser les points-virgules. Je suis en train d'utiliser cela, mais ça me jeter une erreur:Parse PATH utilisant FOR/F dans le script BAT

for /f "tokens=* delims=;" %%a in (%PATH%) do @echo %%a 

Le résultat est une ligne: « Le système ne peut pas trouver le fichier C: \ Windows \ system32. »

Je suis sûr qu'il me manque quelque chose de très basique mais toute aide serait grandement appréciée. TY!

Répondre

9
SET TempPath="%Path:;=";"%" 
FOR %%a IN (%TempPath%) DO echo.%%~a 
+0

parfait - merci! – Skatterbrainz

2

Pour ce faire correctement, vous avez besoin de quelque chose de plus compliqué qu'un simple FOR. Essayez ce qui suit dans un fichier batch:

@ECHO OFF 
SET TEMPPATH=%PATH% 
:PARSE_START 
IF "%TEMPPATH%"=="" GOTO EXIT 
FOR /F "tokens=1* delims=;" %%a in ("%TEMPPATH%") Do ECHO %%a 
FOR /F "tokens=1* delims=;" %%a in ("%TEMPPATH%") Do SET TEMPPATH=%%b 
GOTO PARSE_START 
:EXIT 
+0

Je suis d'accord. +1 à vous monsieur – demoncodemonkey

+0

Cela produit le même résultat que le message d'Anders. Cependant, je suis allé avec le sien parce que le code est plus compact. – Skatterbrainz