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

[文件操作] 求一个批量修改文件名的bat脚本

[复制链接]
发表于 2024-6-14 16:00:26 | 显示全部楼层 |阅读模式
求高手给做一个批量修改文件名的批处理:
要求:
1、通过拖拽的方式执行.
2、bat想要执行的效果是将拖拽目录下的*.tif *.jpg *.png所有的文件都顺序命名为%date%-1.jpg…2.png ...3.tif
如:执行bat前d:\123目录下有如下几个文件
d:\123\0.jpg
d:\123\0(1).jpg
d:\123\0(2).png
d:\123\0(3).tif
执行bat后想要得到的效果如下
d:\123\20240614-1.jpg
d:\123\20240614-2.jpg
d:\123\20240614-3.png
d:\123\20240614-4.tif
谢谢
发表于 2024-6-14 17:28:41 | 显示全部楼层
本帖最后由 77七 于 2024-6-14 17:29 编辑
  1. @echo off
  2. if "%~1" equ "" (
  3.         exit
  4. ) else (
  5.         pushd "%~1" || exit
  6. )
  7. for /f "delims=" %%x in ('powershell -c "'{0:yyyyMMdd}' -f (get-date)"') do (
  8.         for /f "delims=" %%i in ('dir /b /a-d *.jpg *.png *.tif') do (
  9.                 for /f "tokens=1-2 delims=()" %%a in ("%%~ni") do (
  10.                         set /a n=%%b+1
  11.                         call ren "%%i" "%%x-%%n%%%%~xi"
  12.                 )
  13.         )
  14. )
  15. pause
复制代码
 楼主| 发表于 2024-6-14 17:36:43 | 显示全部楼层
回复 2# 77七


    谢谢大师的帮助,但我xp系统没有powershell软件,
发表于 2024-6-14 17:49:54 | 显示全部楼层
回复 3# dzwind


  1. @echo off
  2. if "%~1" equ "" (
  3.         exit
  4. ) else (
  5.         pushd "%~1" || exit
  6. )
  7. for /f "delims=" %%a in ('wmic os get LocalDateTime ^|findstr [0-9]') do (
  8.         set x=%%a
  9. )
  10. for /f "delims=" %%i in ('dir /b /a-d *.jpg *.png *.tif') do (
  11.         for /f "tokens=1-2 delims=()" %%a in ("%%~ni") do (
  12.                 set /a n=%%b+1
  13.                 call ren "%%i" "%x:~0,8%-%%n%%%%~xi"
  14.         )
  15. )
  16. pause
复制代码
 楼主| 发表于 2024-6-14 17:53:54 | 显示全部楼层
回复 4# 77七


    这回能用了。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 01:42 , Processed in 0.015398 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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