
标题: [文件操作] 求助批处理实现文件名替换 [打印本页]
作者: FU586097 时间: 2024-12-25 15:33 标题: 求助批处理实现文件名替换
各位老师好 麻烦大家帮忙解决使用BAT批量修改文件名 一个文件夹里面有 A (1) A (2) A (3) A (4) A (5) 按顺序替换为 北京 上海 天津 广州 海南 (不需要替换为英文) 非常感谢各位老师帮忙
作者: aloha20200628 时间: 2024-12-25 17:04
本帖最后由 aloha20200628 于 2024-12-25 21:52 编辑
回复 1# FU586097 - @echo off &setlocal enabledelayedexpansion
- for %%a in (
- "a (1)=北京"
- "a (2)=上海"
- "a (3)=天津"
- "a (4)=广州"
- "a (5)=海南" ) do set %%a
- for /f "delims=" %%F in ('dir /b/a-d "a*).docx" ') do if "!%%~nF!" neq "" ren "%%F" "!%%~nF!%%~xF%"
- pause&exit/b
复制代码
作者: FU586097 时间: 2024-12-25 20:33
回复 2# aloha20200628
谢谢老师 试试无效
作者: aloha20200628 时间: 2024-12-25 20:45
本帖最后由 aloha20200628 于 2024-12-25 20:51 编辑
回复 3# FU586097
请检查真实文件名格式与代码中的字面量如 "a (1)" 是否完全一致?真有空格?是英文括号还是中文括号?
再用 chcp 命令检查当前系统码页是 936 还是 65001 ?
作者: FU586097 时间: 2024-12-25 20:48
本帖最后由 FU586097 于 2024-12-25 20:54 编辑
回复 4# aloha20200628
谢谢老师 这个不懂 再用 chcp 命令检查当前系统码页是 936 还是 65001 ?
A (1) A (2) A (3) A (4) A (5) 检查了 这个相同 这些是复制粘贴的
作者: aloha20200628 时间: 2024-12-25 21:00
回复 5# FU586097
命令行直接键入 chcp 回车,看其返回值是 936 还是 65001
作者: FU586097 时间: 2024-12-25 21:12
回复 6# aloha20200628
谢谢老师 是936
作者: aloha20200628 时间: 2024-12-25 21:30
回复 7# FU586097
2楼代码假定被处理的文件名格式如 "a (n).txt" ,其中 n=1,2,... 其扩展名 .txt 任意,要求相应改为 北京.txt, 上海.txt, ... 再请楼主确认是否如此?
作者: FU586097 时间: 2024-12-25 21:43
本帖最后由 FU586097 于 2024-12-25 21:45 编辑
回复 8# aloha20200628
谢谢老师 扩展名都是 A (1).docx 这个 老师改为这个扩展名
作者: aloha20200628 时间: 2024-12-25 22:00
本帖最后由 aloha20200628 于 2024-12-25 22:01 编辑
回复 9# FU586097
模拟了经楼主确认的一楼示例样本,用2楼代码测试已通过》当前文件夹下的 a (n).docx 共5个文件依据其对应序号 n 被更名为 北京.docx, 上海.docx, ...
作者: FU586097 时间: 2024-12-25 22:17
回复 10# aloha20200628
谢谢老师 我试了怎么没有效果?
作者: FU586097 时间: 2024-12-25 22:21
回复 10# aloha20200628
BAT保存时提示 C:\Users\FU8989\Desktop\新建文件夹\A (1).BAT
该文件含有Unicode 格式的字符,当文件保存为 ANSI编码的文本文
件时,该字符将丢失。要保存 Unicode信息,单击下面的“取消”,然
后从编码列表中选择一个Unicode选项。继续吗?
作者: aloha20200628 时间: 2024-12-25 22:23
回复 11# FU586097
2楼代码用记事本(ansi 编码)存为 test.bat 运行,与被处理的 *.docx 源文件同目录...
作者: FU586097 时间: 2024-12-25 22:34
回复 13# aloha20200628
谢谢老师 保存时提示后 编辑里面有好多 ?号
作者: FU586097 时间: 2024-12-25 22:35
回复 13# aloha20200628
老师 能加个微信帮忙一下吗 13698925126
作者: FU586097 时间: 2024-12-25 22:38
回复 13# aloha20200628
老师谢谢 怎样上传图片给你看
作者: aloha20200628 时间: 2024-12-25 22:46
回复 14# FU586097
系统是win7 ? win8 ? win10 ? win11 ?
作者: FU586097 时间: 2024-12-25 22:47
回复 17# aloha20200628
win10
作者: aloha20200628 时间: 2024-12-25 22:53
回复 16# FU586097
参见其中 ‘如何上传’ http://www.bathome.net/redirect. ... o=lastpost#lastpost
作者: aloha20200628 时间: 2024-12-25 23:01
回复 18# FU586097
文件夹中要处理的 *.docx 文件用 dir /b a*.docx 作个列表结果,粘贴出来一看便知了...
作者: FU586097 时间: 2024-12-25 23:01
回复 19# aloha20200628
谢谢老师 这么长时间的耐心帮忙 非常感谢 弄好了 很满意
作者: FU586097 时间: 2024-12-25 23:06
回复 20# aloha20200628
老师 谢谢 找到一个这样的代码 但是它只能替换为数字或者英文 不能替换为中文 麻烦你看看能设置为替换中文吗 代码如下
ren A (1).docx AA.docx
ren A (2).docx BB.docx
ren A (3).docx CC.docx
ren A (4).docx DD.docx
ren A (5).docx EE.docx
作者: aloha20200628 时间: 2024-12-25 23:46
回复 22# FU586097
若用一比一的固定代码写,改为如下即可- ren "A (1).docx" "北京.docx"
- ren "A (2).docx" "上海.docx"
- ren "A (3).docx" "天津.docx"
- ren "A (4).docx" "广州.docx"
- ren "A (5).docx" "海南.docx"
复制代码
作者: FU586097 时间: 2024-12-26 00:01
回复 23# aloha20200628
谢谢老师 太好了 如如果不是docx 是文件夹怎样修改代码 或者txt Excel 呢 谢谢
作者: qixiaobin0715 时间: 2024-12-26 08:50
回复 24# FU586097
你可以将文件或文件夹对应的重命名名称一行一组保存在一个文本文件中,格式如下:
1.txt- "A (1).*":"北京.*"
- "A (2).*":"上海.*"
- "A (3).*":"天津.*"
- "A (4).*":"广州.*"
- "A (5).*":"海南.*"
- "A (1)":"中华"
- "A (2)":"人民"
复制代码
文件名写成XXX.*的形式
批处理代码如下:
test.bat- @echo off
- for /f "tokens=1,2 delims=:" %%i in (1.txt) do if exist "%%i" ren "%%i" "%%j"
- pause
复制代码
作者: FU586097 时间: 2024-12-26 08:54
回复 19# aloha20200628
老师早上好 我自已全弄好了 谢谢你对我这个项目帮助 麻烦你了
:handshake :handshake
作者: FU586097 时间: 2024-12-26 08:56
回复 25# qixiaobin0715
谢谢老师 好用
作者: aloha20200628 时间: 2024-12-26 11:40
回复 26# FU586097
【仅供参考】与楼主爬楼20+层,从代码原版中 ‘更名字典的内存定义’ 到最后的 ‘一比一直接更名’... 总结之,还是把一行流代码与更名字典混编一体(存为 test.bat 运行一气呵成)更为简洁高效,看以下代码...- @echo off &(for /f "delims=" %%a in ('more +2 "%~f0" ') do (ren %%a)) 2>nul &exit/b
- ::以下是更名字典
- "a (1).*" "北京.*"
- "a (2).*" "上海.*"
- "a (3).*" "天津.*"
- "a (4).*" "广州.*"
- "a (5).*" "海南.*"
复制代码
作者: czjt1234 时间: 2024-12-26 13:00
本帖最后由 czjt1234 于 2024-12-26 13:03 编辑
............................
作者: FU586097 时间: 2024-12-26 21:11
回复 28# aloha20200628
谢谢老师 很好
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |