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

[文件操作] 求助批处理实现文件名替换

各位老师好  麻烦大家帮忙解决使用BAT批量修改文件名  一个文件夹里面有  A (1)  A (2)  A (3) A (4) A (5)  按顺序替换为 北京 上海  天津 广州 海南  (不需要替换为英文) 非常感谢各位老师帮忙

本帖最后由 aloha20200628 于 2024-12-25 21:52 编辑

回复 1# FU586097
  1. @echo off &setlocal enabledelayedexpansion
  2. for %%a in (
  3.    "a (1)=北京"
  4.    "a (2)=上海"
  5.    "a (3)=天津"
  6.    "a (4)=广州"
  7.    "a (5)=海南" ) do set %%a
  8. for /f "delims=" %%F in ('dir /b/a-d "a*).docx" ') do if "!%%~nF!" neq "" ren "%%F" "!%%~nF!%%~xF%"
  9. pause&exit/b
复制代码

TOP

回复 2# aloha20200628
谢谢老师 试试无效

TOP

本帖最后由 aloha20200628 于 2024-12-25 20:51 编辑

回复 3# FU586097

请检查真实文件名格式与代码中的字面量如 "a (1)" 是否完全一致?真有空格?是英文括号还是中文括号?
再用 chcp 命令检查当前系统码页是 936 还是 65001 ?

TOP

本帖最后由 FU586097 于 2024-12-25 20:54 编辑

回复 4# aloha20200628


    谢谢老师  这个不懂  再用 chcp 命令检查当前系统码页是 936 还是 65001 ?
   A (1) A (2) A (3) A (4) A (5)  检查了 这个相同   这些是复制粘贴的

TOP

回复 5# FU586097

命令行直接键入 chcp 回车,看其返回值是 936 还是 65001

TOP

回复 6# aloha20200628
  谢谢老师  是936

TOP

回复 7# FU586097

2楼代码假定被处理的文件名格式如 "a (n).txt" ,其中 n=1,2,... 其扩展名 .txt 任意,要求相应改为 北京.txt, 上海.txt, ... 再请楼主确认是否如此?

TOP

本帖最后由 FU586097 于 2024-12-25 21:45 编辑

回复 8# aloha20200628
谢谢老师  扩展名都是  A (1).docx  这个  老师改为这个扩展名

TOP

本帖最后由 aloha20200628 于 2024-12-25 22:01 编辑

回复 9# FU586097

模拟了经楼主确认的一楼示例样本,用2楼代码测试已通过》当前文件夹下的 a (n).docx 共5个文件依据其对应序号 n 被更名为 北京.docx, 上海.docx, ...

TOP

回复 10# aloha20200628


    谢谢老师 我试了怎么没有效果?

TOP

回复 10# aloha20200628

BAT保存时提示 C:\Users\FU8989\Desktop\新建文件夹\A (1).BAT
该文件含有Unicode 格式的字符,当文件保存为 ANSI编码的文本文
件时,该字符将丢失。要保存 Unicode信息,单击下面的“取消”,然
后从编码列表中选择一个Unicode选项。继续吗?

TOP

回复 11# FU586097

2楼代码用记事本(ansi 编码)存为 test.bat 运行,与被处理的 *.docx 源文件同目录...

TOP

回复 13# aloha20200628


    谢谢老师 保存时提示后  编辑里面有好多  ?号

TOP

回复 13# aloha20200628
老师 能加个微信帮忙一下吗  13698925126

TOP

返回列表