按字母顺序将文件组织到文件夹中

按字母顺序将文件组织到文件夹中

我有一个文件夹,里面有数千个文件,这些文件在合成器模拟器中打开。文件太多了,当我尝试浏览要打开哪个文件时,模拟器会冻结几秒钟。我想将所有文件按文件名的首字母放在子文件夹中。

我有 Total Commander。可以自动化吗?如果不行还有其他方法吗?

答案1

移动到文件夹

@echo off
setlocal enabledelayedexpansion 
for /f "tokens=*" %%x in ('dir /b *.ext') do (
    set tmp=%%x
    set tmp=!tmp:~0,1!
    if not exist .\!tmp! md !tmp!
    move "%%x" "!tmp!\%%x" > nul
)
endlocal
echo Done.

将与掩码(现在为 - *.ext)匹配的文件从当前文件夹移动到子文件夹,子文件夹名称等于文件名的第一个字母。最简单的方法 - 将此批处理放入包含文件的文件夹中并执行。

*.ext用适合您的文件的正确掩码进行替换。

有些文件可能因为文件名中包含非标准的 Unicode 符号而无法移动,并出现“文件未找到”错误。请手动移动此类文件。


更新要解决非标准符号的问题,您可以尝试使用dir /x *.ext命令(如果 8.3 名称未被禁用则适用)。在这种情况下,您必须跳过 7 行并"tokens=4 skip=7"在其不为空时使用第 4 个(必须验证)标记 ( )。最后 2 行的“文件未找到”错误是安全的,必须忽略。

相关内容