[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理怎样修改文件夹和子文件夹所有mp4的文件名?

将文件夹和子文件夹下的所有mp4文件名中"."后边所有内容删除。注意不要把扩展名删除。
比如:
Test/001/abc你好001.mp4你好.mp4
执行后
Test/001/abc你好001.mp4

数量比较多,大概一万个,在不同文件夹

本帖最后由 newswan 于 2024-6-27 22:06 编辑

第一个 .mp4 后面的删掉?
需要 sed
  1. for /f "usebackq tokens=1 delims=" %%a in (` dir /s /b /a-d "*.mp4*.mp4" `) do (
  2. for /f "usebackq tokens=1 delims=" %%b in (` echo %%a | sed -e 's/[.]mp4.*[.]mp4/.mp4/'`) do (
  3. ren %%a %%b
  4. )
  5. )
复制代码
powershell
  1. Get-ChildItem -Path ".\New folder\" -Filter "*.mp4*.mp4" | ForEach-Object {
  2. Rename-Item $_ -NewName ($_.Name -replace "[.]mp4.*[.]mp4",".mp4")
  3. }
复制代码

TOP

本帖最后由 aloha20200628 于 2024-6-27 16:06 编辑

回复 1# gddsssko

一旦遭遇有多点分隔的文件名如 c:\test\xyz.abc你好001.mp4你好.mp4  则可处理成 c:\test\xyz.abc你好001.mp4
  1. @echo off &for /r %%F in (*.mp4) do for %%f in ("%%~dpnF") do (ren "%%F" "%%~nf%%~xF")
  2. pause&exit/b
复制代码

TOP

  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "delims=" %%i in ('dir /b /s /a-d *.mp4') do (
  4. for /f "delims=." %%a in ("%%~ni") do (
  5. ren "%%i" "%%a%%~xi"
  6. )
  7. )
  8. pause
复制代码
bat小白,请多指教!谢谢!

TOP

本帖最后由 qixiaobin0715 于 2024-6-27 12:59 编辑

批处理文件保存为ANSI编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /s /b /a-d "*.mp4*.mp4"') do (
  4.     set "na=%%~nxi"
  5.     set "na=!na:.mp4=.!"
  6.     for %%j in ("!na!") do (
  7.         ren "%%i" "%%~nj.mp4"
  8.     )
  9. )
  10. pause
复制代码

TOP

返回列表