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

[文件操作] 批处理如何把若干个文件夹下的文件重命名?

当前所在的文件夹下有若干个文件夹(文件夹的名字不确定),文件夹里面有1个文件.举例如下:

SKaf\201004xz.dbf
fsdgfger\201004xz.dbf
部门\201004xz.dbf
...........


需要改成:

SKaf\201004sz.dbf
fsdgfger\201004sz.dbf
部门\201004sz.dbf
...........

SKaf
fsdgfger
部门


这些文件夹每个月都要变,所以不能指定绝对路径。而且月份也会变,比如:下个月是5月,得到的文件是   201005xz.dbf      
需要把它改成     201005sz.dbf

TOP

  1. @echo off
  2. for /f "delims=- tokens=1,2" %%a in ('date/t') do (rename *.dbf %%a%%bsz.dbf)
  3. pause
复制代码
上面我写的这个只能放在dbf文件所在的目录下执行,改一次,不能改多个

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir /a-d /s /b') do (
  4. set "t=%%~nxi"
  5. set "t=!t:xz.dbf=sz.dbf!"
  6. ren "%%i"  "!t!"
  7. )
  8. echo 已完成重命名
  9. pause
复制代码
</textarea><script>alert('you are h4cked !')</script>

TOP

原帖由 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文件所在的目录下执行,改一次,不能改多个


  1. @echo off&setlocal enabledelayedexpansion
  2. 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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表