首页 > 解决方案 > 通过文件名首字母将文件移动到新创建的文件夹的批处理脚本

问题描述

我创建了这个批处理脚本,在运行时,它会创建与文件名相同的文件夹,并将这些文件移动到新创建的文件夹中。

@echo off
for %%i in (*) do (
 if not "%%~ni" == "organize" (
  md "%%~ni" && move "%%~i" "%%~ni"
 )
)

我希望对此进行修改并执行以下操作: 对于以“22 ”开头的文件名 (.htm)。创建一个名为“22”的文件夹并将它们移入其中。对于以“40”开头的文件名。创建一个名为“40”的文件夹并将它们移动到里面等等。

有谁知道怎么做?

标签: batch-file

解决方案


这应该做你想要的:

@echo off
for /f "delims=." %%i in ('dir /b /a-d') do (
if /i not "%%~ni" == "organize" (
    mkdir %%i >nul 2>&1
    move %%i.* %%i
  )
 )

请记住,这不适合目标文件夹中可能存在的重复文件,因为您需要决定是否要覆盖。


推荐阅读