[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /a-d /b "C:\1212" ^| findstr "jpg$ png$"') do (
  3.     C:\bin\ffmpeg.exe -i "%%~nxi" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~ni.mkv"
  4. )
  5. pause
复制代码

TOP

TOP

回复 12# tcasdsss


试试这个是否报错:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /s /a-d /b "C:\1212" ^| findstr "jpg$ png$"') do (
  3.     echo 正在处理 %%i
  4.     C:\bin\ffmpeg.exe -i "%%i" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~ni.mkv"
  5. )
  6. pause
复制代码
先解决报错的问题,效率的问题稍后再优化。

TOP

回复 14# tcasdsss


    你的ffmpeg.exe从哪里下载的?什么版本?我试试

TOP

测试代码如下:
  1. @echo off
  2. set "PATH=%PATH%;C:\ffmpeg-20140911-git-5e3da25-win64-shared\bin"
  3. set "folder=c:\1212"
  4. for /f "delims=" %%i in ('dir /s /a-d /b "%folder%" ^| findstr /i "jpg$ png$"') do (
  5.     ffmpeg.exe -i "%%i" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%i.mkv"
  6. )
  7. pause
复制代码
执行批处理之前:
c:\1212>dir /b /s /a-d
c:\1212\1_1.jpg
c:\1212\1_2.png
c:\1212\folder1\1_1_1.jpg
c:\1212\folder1\1_1_2.png

执行批处理之后:
c:\1212>dir /b /s /a-d
c:\1212\1_1.jpg
c:\1212\1_1.jpg.mkv
c:\1212\1_2.png
c:\1212\1_2.png.mkv
c:\1212\folder1\1_1_1.jpg
c:\1212\folder1\1_1_1.jpg.mkv
c:\1212\folder1\1_1_2.png
c:\1212\folder1\1_1_2.png.mkv

可以看到,-i "%%i" 和 最后的 "%%i.mkv" 都可以使用完整的路径名,不需要先cd再使用相对路径。
但是有一点,如果文件名或者文件夹名包含中文,会报错:Could find no file ...

TOP

回复 20# tcasdsss
  1. @echo off
  2. set "PATH=%PATH%;C:\ffmpeg-20140911-git-5e3da25-win64-shared\bin"
  3. set "folder=c:\1212"
  4. for /f "delims=" %%i in ('dir /s /a-d /b "%folder%" ^| findstr /i "jpg$ png$"') do (
  5.     ffmpeg.exe -i "%%i" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~dpi%%~ni.mkv"
  6. )
  7. pause
复制代码
这样可以去掉图片的扩展名

TOP

  1. @echo off
  2. set "PATH=%PATH%;C:\ffmpeg-20140911-git-5e3da25-win64-shared\bin"
  3. set "folder=c:\1212"
  4. for /f "delims=" %%i in ('dir /s /a-d /b "%folder%" ^| findstr /i "jpg$ png$"') do (
  5.     cd /d "%%~dpi"
  6.     ffmpeg.exe -i "%%~nxi" -pix_fmt yuv420p -vcodec libx265 -preset placebo -x265-params qp=32 "%%~ni.mkv"
  7. )
  8. pause
复制代码
这样可以解决中文文件夹的问题

TOP

返回列表