之前沒有寫過bat腳本,學習了半個小時,感覺跟shell功能都一樣,大同小異。
FOR命令中有一些變量,他們的用法許多新手朋友還不太了解,今天給大家講解他們的用法!
先把FOR的變量全部列出來:
~I - 刪除任何引號("),擴展 %I
%~fI - 將 %I 擴展到一個完全合格的路徑名
%~dI - 僅將 %I 擴展到一個驅動器號
%~pI - 僅將 %I 擴展到一個路徑
%~nI - 僅將 %I 擴展到一個文件名
%~xI - 僅將 %I 擴展到一個文件擴展名
%~sI - 擴展的路徑只含有短名
%~aI - 將 %I 擴展到文件的文件屬性
%~tI - 將 %I 擴展到文件的日期/時間
%~zI - 將 %I 擴展到文件的大小
%~$PATH:I - 查找列在路徑環境變量的目錄,並將 %I 擴展
到找到的第一個完全合格的名稱。如果環境變量名
未被定義,或者沒有找到文件,此組合鍵會擴展到
空字符串
set ffmpeg_dir=D:\ffmpeg\ffmpeg\bin\ set video_dir=D:\ffmpeg\0101\ ::set /p video_dir=請輸入視頻所在的完整路徑: ::set /p complete_dir=請輸入視頻處理后的路徑: ::轉換video_dir目錄下所有MP4的文件到指定的complete_dir目錄下 for %%i in (%video_dir%*.mp4) do ( ::m編碼 ::判斷文件夾是否存在,不存在創建 if exist %video_dir%%%~nim\ (echo "已經存在文件夾") else ( md %video_dir%%%~nim\ ) %ffmpeg_dir%ffmpeg.exe -i %%i -b 384k -s 1280*720 -ab 64k -ar 22050 -vcodec libx264 -strict -2 %video_dir%%%~nim\%%~nim%%~xi %ffmpeg_dir%ffmpeg.exe -i %video_dir%%%~nim\%%~nim%%~xi -c:v copy -c:a copy -f segment -segment_list %video_dir%%%~nim\%%~nim.m3u8 -segment_time 10 %video_dir%%%~nim\%%~nim_%%03d.ts ::h編碼 if exist %video_dir%%%~nih\ (echo "已經存在文件夾") else ( md %video_dir%%%~nih\ ) %ffmpeg_dir%ffmpeg.exe -i %%i -b 384k -s 1280*720 -ab 64k -ar 22050 -vcodec libx264 -strict -2 %video_dir%%%~nih\%%~nih%%~xi %ffmpeg_dir%ffmpeg.exe -i %video_dir%%%~nih\%%~nih%%~xi -c:v copy -c:a copy -f segment -segment_list %video_dir%%%~nih\%%~nih.m3u8 -segment_time 10 %video_dir%%%~nih\%%~nih_%%03d.ts ::g編碼 if exist %video_dir%%%~nig\ (echo "已經存在文件夾") else ( md %video_dir%%%~nig\ ) %ffmpeg_dir%ffmpeg.exe -i %%i -b 384k -s 1280*720 -ab 64k -ar 22050 -vcodec libx264 -strict -2 %video_dir%%%~nig\%%~nig%%~xi %ffmpeg_dir%ffmpeg.exe -i %video_dir%%%~nig\%%~nig%%~xi -c:v copy -c:a copy -f segment -segment_list %video_dir%%%~nig\%%~nig.m3u8 -segment_time 10 %video_dir%%%~nig\%%~nig_%%03d.ts ) pause
