【发布时间】:2014-07-03 13:10:59
【问题描述】:
我经常处理包含 30,000-50,000 个单独文件的文件组,其中许多文件名中包含 unicode 代码(即 %20、%5a、%5b 等)。为了正确处理这些文件,我需要将这些字符替换为下划线。
我有一个脚本用于一次替换其中一个代码,但必须运行多个脚本来清理列表并且总是会遗漏一些。
我使用的脚本,以%20为例如下:
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%I in ('dir /b ^| find "%20"') do (
set var01=%%I
set var02=!var01:%%5c=_!
call :ren
)
:ren
ren %var01% %var02%
这对每个代码都适用,但我希望能够找到 %** 来查找所有代码并立即替换它们。这是可以通过相当简单的蝙蝠来完成的事情,还是我需要更专业的工具?
感谢您的帮助
【问题讨论】:
-
您必须处理所有可能的十六进制编码值,虽然可以通过一些批处理脚本来完成,但检查所有 256 个值会相当慢。我认为您会找到一个第三方重命名工具,它可以处理该任务并快速运行。 @aacini 可能会帮助您使用非常有效的内存驻留数组,如果您的文件名不太长(这会占用环境空间)
标签: windows batch-file unicode filenames batch-rename