本帖最后由 aloha20200628 于 2024-6-10 22:35 编辑
回复 1# cckkaa888
给一个直接用递归方法 ‘截取文件名第一个多字母字段’ 的版本
以下代码存为 test.bat 置于目标文件(*.txt)所在目录下运行...
- @echo off
- for /f "delims=" %%a in ('dir /b/a-d *.txt') do (
- set "s=%%a"&set "$a=%%a" &setlocal enabledelayedexpansion
- set "_s="&set "_k=" & (call :getstr)
- md "!_s!" 2>nul & move /y "!$a!" "!_s!\" & endlocal
- )
- pause&exit/b
- :getstr
- set "c=!s:~,1!" &if "!c!" geq "a" if "!c!" leq "Z" (
- set "s=!s:~1!"&set "_s=!_s!!c!"&set/a "_k+=1" & goto :getstr)
- if !_k! geq 2 (exit/b) else (set "s=!s:~1!"&set "_s="&set "_k=" & goto :getstr)
- exit/b
复制代码
|