标题: [文件操作] 求一个批量修改文件名的bat脚本 [打印本页]
作者: dzwind 时间: 2024-6-14 16:00 标题: 求一个批量修改文件名的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:28
本帖最后由 77七 于 2024-6-14 17:29 编辑
- @echo off
- if "%~1" equ "" (
- exit
- ) else (
- pushd "%~1" || exit
- )
- for /f "delims=" %%x in ('powershell -c "'{0:yyyyMMdd}' -f (get-date)"') do (
- for /f "delims=" %%i in ('dir /b /a-d *.jpg *.png *.tif') do (
- for /f "tokens=1-2 delims=()" %%a in ("%%~ni") do (
- set /a n=%%b+1
- call ren "%%i" "%%x-%%n%%%%~xi"
- )
- )
- )
- pause
复制代码
作者: dzwind 时间: 2024-6-14 17:36
回复 2# 77七
谢谢大师的帮助,但我xp系统没有powershell软件,
作者: 77七 时间: 2024-6-14 17:49
回复 3# dzwind
- @echo off
- if "%~1" equ "" (
- exit
- ) else (
- pushd "%~1" || exit
- )
- for /f "delims=" %%a in ('wmic os get LocalDateTime ^|findstr [0-9]') do (
- set x=%%a
- )
- for /f "delims=" %%i in ('dir /b /a-d *.jpg *.png *.tif') do (
- for /f "tokens=1-2 delims=()" %%a in ("%%~ni") do (
- set /a n=%%b+1
- call ren "%%i" "%x:~0,8%-%%n%%%%~xi"
- )
- )
- pause
复制代码
作者: dzwind 时间: 2024-6-14 17:53
回复 4# 77七
这回能用了。谢谢
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |