【发布时间】:2013-10-16 22:27:05
【问题描述】:
我正在尝试让我的批次识别并删除非英文字符。基本上任何显示为“?”的字符在 cmd 窗口中。我需要使用 VBScript 吗?
我正在考虑蛮力编写一个脚本,该脚本提取文件名的每个字母并将其与大量可接受的字符进行比较,但必须有更好的方法。
【问题讨论】:
标签: batch-file set character non-english
我正在尝试让我的批次识别并删除非英文字符。基本上任何显示为“?”的字符在 cmd 窗口中。我需要使用 VBScript 吗?
我正在考虑蛮力编写一个脚本,该脚本提取文件名的每个字母并将其与大量可接受的字符进行比较,但必须有更好的方法。
【问题讨论】:
标签: batch-file set character non-english
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)。请注意,如果您的文件名以 ; 开头,它将不起作用。但我猜这不会造成问题。
【讨论】: