标题: [文本处理] 批处理如何修改文件名 [打印本页]
作者: wenyuer520 时间: 2022-3-9 20:59 标题: 批处理如何修改文件名
假设我有三个文件夹,文件名分别为小明、小红、小军,每个文件夹内有很多各文件。比如有学历、身份证、考试成绩等等。我现在想用批处理实现如下需求:
1、把文件改名为:小明-学历,小明-身份证....小红-学历...小军-学历;
2、读取出所有文件的文件名到EXCEL里,以便核对哪些人少了什么资料
3、复制所有学历文件到单独的一个文件夹里
请问有哪位大神知道这个批处理怎么写么?
作者: Batcher 时间: 2022-3-9 23:20
回复 1# wenyuer520
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ- @echo off
- cd /d "%~dp0"
- (for /f "delims=" %%i in ('dir /b /ad') do (
- for /f "delims=" %%j in ('dir /b /a-d "%%i"') do (
- ren "%%i\%%j" "%%i-%%j"
- echo,%%i-%%j
- )
- ))>"Excel.csv"
- set "NewFolder=学历文件夹"
- if not exist "%NewFolder%" (
- md "%NewFolder%"
- )
- for /f "delims=" %%i in ('dir /b /s /a-d *学历*') do (
- copy /y "%%i" "%NewFolder%\"
- )
复制代码
作者: qixiaobin0715 时间: 2022-3-10 10:37
本帖最后由 qixiaobin0715 于 2022-3-10 13:10 编辑
- @echo off
- rem 在下面变量中列出所有文件名,即你说的学历、身份证、考试成绩等等,并以空格分隔。
- set FileNamesList=学历 身份证 考试成绩
- (for /f "delims=" %%i in ('dir /b /ad') do (
- pushd "%%i"
- for /f "delims=" %%j in ('dir /b /a-d') do ren "%%j" "%%i-%%j"
- rem 将缺失文件保存到NExFiles.txt中。
- for %%k in (%FileNamesList%) do if not exist *%%k* echo,%%i-%%k
- if not exist "%~dp0学历" md "%~dp0学历"
- copy *学历* "%~dp0学历">nul 2>nul
- popd
- ))>"%~dp0NExFiles.txt"
- pause
复制代码
作者: wenyuer520 时间: 2022-3-11 17:01
感谢两位大神
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |