标题: [文件操作] 批处理如何把若干个文件夹下的文件重命名? [打印本页]
作者: binsea 时间: 2010-4-16 16:00 标题: 批处理如何把若干个文件夹下的文件重命名?
当前所在的文件夹下有若干个文件夹(文件夹的名字不确定),文件夹里面有1个文件.举例如下:
SKaf\201004xz.dbf
fsdgfger\201004xz.dbf
部门\201004xz.dbf
...........
需要改成:
SKaf\201004sz.dbf
fsdgfger\201004sz.dbf
部门\201004sz.dbf
...........
作者: binsea 时间: 2010-4-16 16:04
SKaf
fsdgfger
部门
这些文件夹每个月都要变,所以不能指定绝对路径。而且月份也会变,比如:下个月是5月,得到的文件是 201005xz.dbf
需要把它改成 201005sz.dbf
作者: binsea 时间: 2010-4-16 16:06
- @echo off
- for /f "delims=- tokens=1,2" %%a in ('date/t') do (rename *.dbf %%a%%bsz.dbf)
- pause
复制代码
上面我写的这个只能放在dbf文件所在的目录下执行,改一次,不能改多个
作者: vsbat 时间: 2010-4-16 16:36
- @echo off
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /a-d /s /b') do (
- set "t=%%~nxi"
- set "t=!t:xz.dbf=sz.dbf!"
- ren "%%i" "!t!"
- )
- echo 已完成重命名
- pause
复制代码
作者: hanyeguxing 时间: 2010-4-16 17:29
原帖由 binsea 于 2010-4-16 16:06 发表
@echo off
for /f "delims=- tokens=1,2" %%a in ('date/t') do (rename *.dbf %%a%%bsz.dbf)
pause
上面我写的这个只能放在dbf文件所在的目录下执行,改一次,不能改多个
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,2 delims=-:/ " %%a in ("%date%") do for /F "delims=" %%c in ('dir *.dbf /a-d /s /b') do set "c=%%c"&if /i "!c:~-12!"=="%%a%%bxz.dbf" ren "%%c" "%%a%%bsz.dbf"
复制代码
for /f "tokens=1,2 delims=-:/ " %%a in ("%date%") do 获取%%a%%b为当月的年月,例如201004
for /F "delims=" %%c in ('dir *.dbf /a-d /s /b') do 获取当前目录(包括子目录,包括隐藏或系统属性)下所有.dbf的完整路径及文件名,并"set c=%%c"赋值为变量c
if /i "!c:~-12!"=="%%a%%bxz.dbf" ren "%%c" "%%a%%bsz.dbf" 判断文件名最后12个字符是否符合要求,符合则重命名。
[ 本帖最后由 hanyeguxing 于 2010-4-16 17:34 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |