Разбор PATH с использованием FOR / F в скрипте BAT - PullRequest
3 голосов
/ 05 ноября 2010

Мне нужно проанализировать список% PATH% в скрипте .BAT, но мне не очень повезло с путями, содержащими пробелы.но мне нужно разобрать на точки с запятой.Я пытаюсь использовать это, но выдает ошибку:

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

В результате получается одна строка: «Система не может найти файл C: \ Windows \ system32.»

Я уверен, что мне не хватает чего-то очень простого, но любая помощь будет принята с благодарностью.TY!

Ответы [ 2 ]

9 голосов
/ 05 ноября 2010
SET TempPath="%Path:;=";"%"
FOR %%a IN (%TempPath%) DO echo.%%~a
2 голосов
/ 05 ноября 2010

Чтобы сделать это правильно, вам нужно нечто более сложное, чем простой FOR Попробуйте следующее в командном файле:

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