我对批处理文件有点菜鸟,所以非常感谢您的帮助。我在一个目录中存储了大量文件,我希望根据文件名中的第一个单词将它们分类到子文件夹中。因此,我有如下文件:
C:\Folder\ABC-001
C:\Folder\ABC-002
C:\Folder\EFG-001
C:\Folder\HIJ-002
我希望根据第一个单词将所有文件移动到子文件夹中,最终如下所示:
C:\Folder\ABC\ABC-001
C:\Folder\ABC\ABC-002
C:\Folder\EFG\EFG-001
C:\Folder\HIJ\HIJ-002
请帮助我离开这里。非常感谢!
答案1
对提议的重复项所需的调整很少:
- 使用一个 for 来迭代文件夹内容
%%A
,其模式至少包含一个破折号。 for /f
需要另一个%%A
在破折号处拆分名称%%B
如果不存在名为 的文件夹,则创建它- 将原始文件移动
%%A
到子文件夹%%B
@Echo off
PushD C:\folder
for %%A in ("*-*.*") do for /f "tokens=1* delims=-" %%B in ("%%A") do (
If not exist "%%B" MD "%%B"
Move "%%A" "%%B\"
)
PopD