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

[文件操作] [已解决]求助BATJ脚本批量更换文件名

本帖最后由 13711640208 于 2021-6-24 14:36 编辑

目的 就是把目录下的文件名字换个格式 如20200720171513-O-L01-EN-15899666906.wav 换成15899666906_20200720171513.wav
上百个文件需要更改
  1. setlocal EnableDelayedExpansion
  2. for /f "delims=" %%a in ('cmd /c "dir /b %cd%\*.wav"') do (
  3. set a=%%a
  4. )
  5. for /f "tokens=1,2,3,4,5,6,7 delims=-. " %%a in ('cmd /c "dir /b %cd%\*.wav"') do (
  6. set b=%%e_%%a.wav
  7. )
  8. ren %a% %b%
  9. pause
复制代码
这代码只能改set获取到的最后一个值 没啥用

用Excel表格函数修改啊

TOP

回复 3# idwma
ren好像不可以放在那里 报错了

TOP

setlocal EnableDelayedExpansion
for /f "tokens=1-6 delims=-." %%a in ('cmd /c "dir /b %cd%\*.wav"') do (
    ren %%a-%%b-%%c-%%d-%%e.%%f %%e-%%a.%%f
)

pause

TOP

通用一点的话,取文件名以短横分割的第1组和最后1组字符重命名,文件名中不存在短横的不改名:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.wav) do (
  4.     set "str=%%i"
  5.     set "str=!str:-=/!"
  6.     if not "!str!"=="!str:*/=/!" for %%a in ("!str:*/=/!") do ren "%%i" "%%~na_!str:%%~a=!%%~xa"
  7. )
  8. pause
复制代码
1

评分人数

TOP

返回列表