本帖最后由 aloha20200628 于 2024-11-25 11:41 编辑
回复 5# aabout2008
以下两版批处代码均可替换文件名中的中文字符(任何位置),只要确保第一版批处存为简中(936)编码(如记事本的ANSI编码),第二版批处存为utf-8编码即可,总之,保存脚本的编码要与脚本行头采用的码页保持一致。实际上用第一版就可以了...
第一版- @echo off &chcp 936>nul
- set "s1=自行车" &set "s2=坦克车"
- for /f "delims=" %%F in ('dir /b/a-d *%s1%*') do if "%%~nxF" neq "%~nx0" (
- set "F=%%~nF" &setlocal enabledelayedexpansion
- (ren "%%F" "!F:%s1%=%s2%!%%~xF") &endlocal)
- endlocal&pause&exit/b
复制代码 第二版- @echo off &chcp 65001>nul
- set "s1=自行车" &set "s2=坦克车"
- for /f "delims=" %%F in ('dir /b/a-d *%s1%*') do if "%%~nxF" neq "%~nx0" (
- set "F=%%~nF" &setlocal enabledelayedexpansion
- (ren "%%F" "!F:%s1%=%s2%!%%~xF") &endlocal)
- pause&exit/b
复制代码 备注》代码中对文件名的字符串替换是整体替换,即出现在任何位置的目标字符串均被替换;对英文字符替换的匹配模式为不区分大小写
|