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

[文件操作] 批处理如何批量修改文件为指定文件名?

[复制链接]
发表于 2024-1-21 14:44:05 | 显示全部楼层 |阅读模式
平时收集各部门word文档,但是命名五花八门,不是很规范,需要批量修改文件名为编号加部门规范名称,比如带“办公室”的文档,修改为“01办公室”;“XX财务XX”的文档,修改为“02财务科”,“XX人事XX”的文档,修改为“03人事科”,以此类推,请问代码要怎么写?
发表于 2024-1-21 16:45:39 | 显示全部楼层
回复 1# 暴雪英雄
建立“映射关系.txt”文件,如:

  1. 办公室        01办公室.docx
  2. 财务部        02财务部.docx
  3. 公关部        03公关部.docx
复制代码
下载gawk( http://bcn.bathome.net/tool/4.1.0/gawk.exe ),执行如下脚本:

  1. dir *.doc*/b>1.txt
  2. gawk "FNR==NR{map[$1]=$2;next}{for(i in map)if($0 ~ i){printf( "move /Y \\"%%s\\" \\"%%s\\"\n",$0,map[i]);next}}" 映射关系.txt 1.txt|cmd.exe
  3. del 1.txt
复制代码
发表于 2024-1-21 17:35:38 | 显示全部楼层
本帖最后由 77七 于 2024-1-21 17:40 编辑
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. set _"办公室"=01办公室
  5. set _"财务"=02财务科
  6. set _"人事"=03人事科
  7. for /f tokens^=1*delims^=^"^=^_ %%a in ('set _') do (
  8.         if exist "*%%a*.doc*" (
  9.                 ren "*%%a*.doc*" "%%b.doc*"
  10.         )
  11. )
  12. pause
复制代码
 楼主| 发表于 2024-1-22 14:26:22 | 显示全部楼层
本帖最后由 暴雪英雄 于 2024-1-22 17:43 编辑

回复 3# 77七


    感谢大虾,目前可以实现,再次请教,如果某个科室报过来的材料,文件名有不同关键字,请问需要怎么改,比如财务室,有可能是写的“财务”或“财会”,即多个关键字,相应改成同一个科室名称。另外,如果文件名需要加上输入的指定日期,未输入默认当天日期,需要怎么完善?

举例:

输入20240111,"财务.doc"或"财会.doc"修改为"02财务科(20240111)",
直接回车,"财务.doc"或"财会.doc"修改为"02财务科(20240122)",0122为当天日期。
发表于 2024-1-22 20:54:04 | 显示全部楼层
回复 4# 暴雪英雄

  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. :1
  5. for /f %%i in ('powershell -c "Get-Date -uformat '%%Y%%m%%d'"') do (
  6.         set "Today=%%i"
  7. )
  8. set /p Today=输入日期或按回车默认当前日期:
  9. echo %Today%|findstr /rc:"[0-9][0-9]*" 1>nul || goto :1
  10. set _"办公室"=01办公室
  11. set _"财务"=02财务科
  12. set _"财会"=02财务科
  13. set _"人事"=03人事科
  14. for /f tokens^=1*delims^=^"^=^_ %%a in ('set _') do (
  15.         if exist "*%%a*.doc*" (
  16.                 ren "*%%a*.doc*" "%%b(%Today%).doc*"
  17.         )
  18. )
  19. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
暴雪英雄 + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2024-1-23 09:05:37 | 显示全部楼层
回复 5# 77七


    收到,万分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:41 , Processed in 0.017801 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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