批量暂停不起作用

时间:2014-05-26 17:49:19

标签: windows loops batch-file for-loop

我试图弄清楚为什么暂停不能使用此代码,任何人都可以帮助我?

   @echo off

    for %%1 in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
        if exist %%1:\ (
        set d=%%1:
        call :processToken
        )
      )
    goto :eof

    :processToken
    for /f "tokens=1-5*" %%1 in ('vol %d%') do (
       set vol=%%6 & goto done
    )
    :done
    echo %d% name=%vol%
    goto :eof

    pause

2 个答案:

答案 0 :(得分:2)

因为它永远不会到达。

之前您有goto :eof行,这会阻止该批次。

答案 1 :(得分:0)

尝试以下方法:

(注意将:EOF标签替换为:EndOfFile,每次都会调用暂停功能)

@echo off

for %%1 in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    if exist %%1:\ (
    set d=%%1:
    call :processToken
    )
  )
goto :EndoOfFile

:processToken
for /f "tokens=1-5*" %%1 in ('vol %d%') do (
   set vol=%%6 & goto done
)
:done
echo %d% name=%vol%
goto :EndoOfFile

:EndoOfFile
pause