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

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

假设我有三个文件夹,文件名分别为小明、小红、小军,每个文件夹内有很多各文件。比如有学历、身份证、考试成绩等等。我现在想用批处理实现如下需求:
1、把文件改名为:小明-学历,小明-身份证....小红-学历...小军-学历;
2、读取出所有文件的文件名到EXCEL里,以便核对哪些人少了什么资料
3、复制所有学历文件到单独的一个文件夹里
请问有哪位大神知道这个批处理怎么写么?

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 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
复制代码

TOP

感谢两位大神

TOP

返回列表