我有点问题,我正在努力理清。我正在全天候录制声音,并将它们拆分为持续2小时的.wav文件。由于.wav文件非常大,我想将它们编码为.mp3。这个脚本
一切正常@echo off
cd path/to/folder
for %%i in (*.wav) do (
lame.exe %%i
del %%i
)
一切正常,但有一个问题,我想检查文件是否还在录制,如果那是真的那么我不想编码它。我现在尝试检查文件大小,10秒后检查文件大小,但它获得相同的值。这是示例
@echo off
cd path/to/folder
for %%i in (*.wav) do (
echo %%~zi
ping -n 10 127.0.0.1 >nul
echo %%~zi
)
输出例如:
444444
和10秒后相同
444444
如果文件大小不断变化,有人可以告诉我如何查看文件大小吗?
答案 0 :(得分:1)
在您的文件上测试此内容。
它将获得一个文件名(在NTFS中按字母顺序排序)并测试它是否被锁定,如果是,则循环 - 每60秒测试一次。
当文件空闲时,它将启动lame,然后检查下一个文件。
@echo off
cd /d "path/to/folder"
for %%a in (*.wav) do call :next "%%a"
echo done
pause
goto :eof
:next
set "filename=%~1"
:loop
2>nul (call;>>"%filename%") && (
echo "%filename%" is free! & goto :lame
) || (
echo "%filename%" is in use or is read only!
)
timeout /t 60 /nobreak
goto :loop
:lame
lame.exe "%~1"
del "%~1"