我试图用批处理拆分系统路径变量。 这就是我所拥有的:
@echo off
setlocal EnableDelayedExpansion
set npath=%path%
set i=0
echo %npath% > temp
for /f "delims=;" %%a in (temp) do (
echo [!i!]: %%a
set /a i=!i!+1
)
然而,当它运行时,它只运行一次循环。而不是我期望的输出,PATH中的目录列表,它只输出一个:
发生了什么?难道我做错了什么?我尝试过使用路径作为字符串,我尝试过改变令牌的数量,我尝试了所有的东西。我是否只是不了解循环如何循环工作?
答案 0 :(得分:1)
尝试使用普通FOR循环迭代路径中的项目(并且您需要设置引号以防止空间冲突):
@echo off
setlocal enableDelayedExpansion
set "_path="!path:;=" "!""
rem echo %_path%
set i=0
for %%a in (%_path%) do (
echo [!i!]: %%~a
set /a i=!i!+1
)
endlocal