批处理文件 - for循环只打印出第一个项目

时间:2014-08-21 02:33:22

标签: batch-file cmd

这是我的批处理文件try.cmd:

for /f "delims=;" %%d in ("%PATH%") do echo %%d

奇怪的是,只有路径中的第一个目录被打印出来,然后循环停止了。如何遍历路径中的所有目录?

3 个答案:

答案 0 :(得分:2)

你的意思是

@ECHO OFF
SETLOCAL
ECHO %path:;=&ECHO(%

您的版本不起作用,因为调用for /f工具需要delims=,但这意味着只有一个输入“行”; for命令将迭代序列,但这意味着没有delims可用...

答案 1 :(得分:1)

@SETLOCAL
@ECHO OFF
SET "P=%PATH%"
:EXTRACT_LOOP
for /f "tokens=1* delims=;" %%p in ("%P%") do (echo %%p & SET P=%%q)
IF NOT "%P%" == "" GOTO :EXTRACT_LOOP

可能还有另一种聪明的方法。

答案 2 :(得分:0)

试试这个:

Printf.bat

@echo off
:loop
Echo %~1
shift /1
if "%~1" NEQ "" goto loop

Cmd的

C:\>Printf.bat 1 2 3 4 5 6
1
2
3
4
5
6

C:\>set test=A;B;C;D
C:\>Printf.bat %test:;= %
A
B
C
D

C:\>Printf.bat %Path:;= %
...

C:\>