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

[文本处理] 批处理如何修改文件名

[复制链接]
发表于 2022-3-9 20:59:19 | 显示全部楼层 |阅读模式
假设我有三个文件夹,文件名分别为小明、小红、小军,每个文件夹内有很多各文件。比如有学历、身份证、考试成绩等等。我现在想用批处理实现如下需求:
1、把文件改名为:小明-学历,小明-身份证....小红-学历...小军-学历;
2、读取出所有文件的文件名到EXCEL里,以便核对哪些人少了什么资料
3、复制所有学历文件到单独的一个文件夹里
请问有哪位大神知道这个批处理怎么写么?
发表于 2022-3-9 23:20:30 | 显示全部楼层
回复 1# wenyuer520


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
  1. @echo off
  2. cd /d "%~dp0"
  3. (for /f "delims=" %%i in ('dir /b /ad') do (
  4.     for /f "delims=" %%j in ('dir /b /a-d "%%i"') do (
  5.         ren "%%i\%%j" "%%i-%%j"
  6.         echo,%%i-%%j
  7.     )
  8. ))>"Excel.csv"
  9. set "NewFolder=学历文件夹"
  10. if not exist "%NewFolder%" (
  11.     md "%NewFolder%"
  12. )
  13. for /f "delims=" %%i in ('dir /b /s /a-d *学历*') do (
  14.     copy /y "%%i" "%NewFolder%"
  15. )
复制代码
发表于 2022-3-10 10:37:29 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2022-3-10 13:10 编辑
  1. @echo off
  2. rem 在下面变量中列出所有文件名,即你说的学历、身份证、考试成绩等等,并以空格分隔。
  3. set FileNamesList=学历 身份证 考试成绩
  4. (for /f "delims=" %%i in ('dir /b /ad') do (
  5.     pushd "%%i"
  6.     for /f "delims=" %%j in ('dir /b /a-d') do ren "%%j" "%%i-%%j"
  7. rem 将缺失文件保存到NExFiles.txt中。
  8.     for %%k in (%FileNamesList%) do if not exist *%%k* echo,%%i-%%k
  9.     if not exist "%~dp0学历" md "%~dp0学历"
  10.     copy *学历* "%~dp0学历">nul 2>nul
  11.     popd
  12. ))>"%~dp0NExFiles.txt"
  13. pause
复制代码
 楼主| 发表于 2022-3-11 17:01:32 | 显示全部楼层
感谢两位大神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 07:17 , Processed in 0.019255 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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