你好,我有个关于bat的问题想跟你请教下:

我在文件夹内有这种文件:W1A01.xx下面解释下文件命名规则:W1:为第一组序号,无固定值,数字值会达到两位数如“W13”A:26个字母,无固定值。01:无固定值,两位数以内。我需要的是,bat抓取文件倒数第二个字符前的字符,并以此新建文件夹,再将此类命名的文件移动到文件夹内。特别提示,不止一种命名的文件还有类似W8B06这种其他命名的文件,也需要以此方式新建文件夹并移动。___补充一条:移动是按抓取文件名的方式移动。因为有很多其他文件,以及其他文件类型的文件。但命名规则是绝对一样的。
2026年09月22日 20:13
有1个网友回答
网友(1):

@echo off & title 根据文件名前4个字符分类 By 依梦琴瑶

::设置待处理的文件夹
set SrcDir=D:\Test

cd /d "%SrcDir%"
for %%a in (*) do (
call :DoIt "%%~a"
)
pause
exit

:DoIt
set "Fn=%~n1"
if not exist "%Fn:~,4%" md "%Fn:~,4%"
move "%~1" "%Fn:~,4%\"
goto :eof

手机上编写,因此尚未实测。