找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20538|回复: 4

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

[复制链接]
发表于 2021-6-20 10:43:45 | 显示全部楼层 |阅读模式
本帖最后由 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获取到的最后一个值 没啥用
发表于 2021-6-20 11:47:40 | 显示全部楼层
用Excel表格函数修改啊
 楼主| 发表于 2021-6-20 12:24:39 | 显示全部楼层
回复 3# idwma
ren好像不可以放在那里 报错了
发表于 2021-6-20 15:34:16 | 显示全部楼层
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
发表于 2021-6-25 11:08:36 | 显示全部楼层
通用一点的话,取文件名以短横分割的第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技术 +1 收起 理由
13711640208 + 1 感谢

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 19:53 , Processed in 0.030709 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表