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

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

求高手给做一个批量修改文件名的批处理:
要求:
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
谢谢

本帖最后由 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
复制代码
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


    谢谢大师的帮助,但我xp系统没有powershell软件,

TOP

回复 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
复制代码
bat小白,请多指教!谢谢!

TOP

回复 4# 77七


    这回能用了。谢谢

TOP

返回列表