【发布时间】:2013-05-14 11:24:07
【问题描述】:
我有一堆文件,我想删除所有不在字母表中的字符。所以给定一个“Home - noises (f).txt”的文件名,我想要一个“Home noises f.txt”的结果。批处理文件在同一个文件夹中,它不需要递归。这就是我到目前为止所拥有的:
@echo ON
SETLOCAL EnableDelayedExpansion
For %%# in (*.*) do (
Set MyVar=%%~n#
set MyVar=!MyVar:"-"= !
REN "%%~n#" "!MyVar!"
set MyVar=!MyVar:"("= !
REN "%%~n#" "!MyVar!"
set MyVar=!MyVar:")"= !
REN "%%~n#" "!MyVar!"
echo %%~n#>>text.txt
)
Pause&Exit
【问题讨论】:
-
空间不是 alpha - 为什么要保留?数字呢?
-
这些将是保留的字符“abcdefghijklmnopqrstuvwxyz 1234567890”,但没有“特殊”字符
-
.怎么样?如果名称仅包含“特殊”字符会怎样?如果 2 个名称合并为一个,例如“a&b”、“a+b”,会发生什么情况?
标签: batch-file character filenames rename alphabet