0

我正在尝试让我的批次识别并删除非英文字符。基本上任何显示为“?”的字符 在 cmd 窗口中。我需要使用 VBScript 吗?

我正在考虑蛮力编写一个脚本,该脚本提取文件名的每个字母并将其与大量可接受的字符进行比较,但必须有更好的方法。

4

1 回答 1

0

尝试这个:

setlocal enabledelayedexpansion
for /f "tokens=*" %%a (`dir /b`) do (
:: Change the above line to `dir /s /b` to include subdirectories
set var=%%~a 
if "!var:?=!" neq "%%~a" (ren "%%~a" "!var:?=!")
)

这将删除?当前目录中文件名中的所有 s (除非您包含/s)。请注意,如果您的文件名以;. 但我猜这不会造成问题。

于 2013-10-16T22:40:30.947 回答