1

我正在将一批放在一起运行一个支持音频转换器。批处理工作,您将它放入一个文件夹并将您需要转换的每个文件转储到同一个文件夹中,它循环遍历每个文件并将转换后的文件输出到转换后的文件夹名称中。当你运行它时,它会一直待在那里直到完成。我要做的是在每个循环的开头说“正在转换文件 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

谢谢!

4

1 回答 1

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 ENABLEDELAYEDEXPANSIONafter@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
于 2013-02-08T18:02:05.803 回答