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)。请注意,如果您的文件名以;. 但我猜这不会造成问题。