Windows批处理文件计数并显示每个循环

时间:2013-02-08 18:00:08

标签: batch-file command cmd

我正在整理一批以运行一个支持音频转换器。批处理工作,您将它放入一个文件夹并转储您需要转换到同一文件夹的每个文件,它循环每个文件并将转换后的文件输出到转换的文件夹名称。当你运行它时,它就坐在那里直到完成。我想要做的是在每个循环的开头说“转换文件1”“转换文件2”等等,以便用户可以看到一些进展。我只是不知道如何添加它。这是我到目前为止。

@echo off
color Fc
echo Remember to put this program and the audio files to convert into the same folder!!!!!
pause
if not exist converted MD converted
for /r . %%f in (*.wav) do "C:\Program Files\Verint\Playback\CommandLineConvertor.exe" "%CD%\%%~nxf" "%CD%\converted\%%~nxf"
echo All files have been converted
pause
end

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以将DO更改为多行,并在循环中回显,如下所示:

for /r . %%f in (*.wav) do (
    ECHO Converting %%f . . .
    "C:\Program Files\Verint\Playback\CommandLineConvertor.exe" "%CD%\%%~nxf" "%CD%\converted\%%~nxf"
)
echo All files have been converted

或者,如果要显示整个路径,只需回显您使用的第一个参数,如下所示:

for /r . %%f in (*.wav) do (
    ECHO Converting "%CD%\%%~nxf" . . .
    "C:\Program Files\Verint\Playback\CommandLineConvertor.exe" "%CD%\%%~nxf" "%CD%\converted\%%~nxf"
)
echo All files have been converted

修改

如果我完全阅读你的要求会有所帮助。您可以增加这样的数字:

setlocal ENABLEDELAYEDEXPANSION之后添加@ECHO OFF以启用变量的延迟扩展。然后,在循环之前,初始化变量:

SET /a x=0

然后在你的循环中,增加变量和ECHO它,给你:

@echo off
setlocal ENABLEDELAYEDEXPANSION
color Fc
echo Remember to put this program and the audio files to convert into the same folder!!!!!
pause
if not exist converted MD converted
SET /a x=0
for /r . %%f in (*.wav) do (
    SET /a x=x+1
    ECHO Converting file !x! . . .
    "C:\Program Files\Verint\Playback\CommandLineConvertor.exe" "%CD%\%%~nxf" "%CD%\converted\%%~nxf"
)
echo All files have been converted
pause
end