在BAT脚本中使用FOR / F解析PATH

时间:2010-11-05 13:26:09

标签: string path batch-file for-loop tokenize

我需要在.BAT脚本中解析%PATH%列表,但是我对包含空格的路径没有太多好运。

for %%a in (%PATH%) do @echo %%a

以上解析空格(默认),但我需要解析分号。我正在尝试使用它,但它给我一个错误:

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

结果是一行:“系统找不到文件C:\ Windows \ system32。”

我确信我错过了一些非常基本的东西,但是我们将非常感谢任何帮助。 TY!

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:2)

要做到这一点,你需要比简单的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