改进代码 ``` @echo off setlocal enabledelayedexpansion REM 注释:请将下一行中的 "E:\FFmpegBatch\ffmpeg.exe" 修改为 ffmpeg 程序所在的路径, 路径名称中不能包含空格 set "ffmpeg_path=E:\FFmpegBatch\ffmpeg.exe" set "s1=00:00:07" ::片头7秒 set "s2=00:00:00" ::片尾倒数第0秒 for /f "tokens=1-4delims=:." %%a in ("%s2%") do ( set /a "t2=(1%%a %% 100 *3600 + 1%%b %% 100 * 60 + 1%%c %% 100) * 1000 + 1%%d %% 1000" echo !t2! ) echo %t2% md NEW 2>nul for %%i in (*.avi *.mkv *.mp4 *.mp3) do ( for /f "tokens=2-5delims=:., " %%a in ('%ffmpeg_path% -i "%%i" 2^>^&1 ^| find "Duration:"') do ( set /a "t=(1%%a%%100*3600+1%%b%%100*60+1%%c%%100)*1000+1%%d0%%1000,t-=t2,ms=t%%1000,t/=1000" set /a h=t/3600,m=t%%3600/60,s=t%%60,h+=100,m+=100,s+=100,ms+=1000 set "t=!h:~1!:!m:~1!:!s:~1!.!ms:~1!" %ffmpeg_path% -i "%%i" -ss %s1% -to !t! -acodec copy "NEW\%%i" -y ) ) pause ```
时间: 2024-02-12 17:09:47 浏览: 287
这个脚本已经很完善了,没有太多需要改进的地方。如果非要说的话,可以在输出提示信息时加上颜色,使其更加醒目。
例如,可以使用 echo 命令加上 ANSI 控制字符来设置输出文本的颜色,实现如下:
```
REM 提示用户备份已完成
echo \033[32m备份已完成!\033[0m
```
其中,\033[32m 表示输出文本的颜色为绿色,\033[0m 表示恢复输出文本的默认颜色。
阅读全文