batch-file - 通过文件名首字母将文件移动到新创建的文件夹的批处理脚本
问题描述
我创建了这个批处理脚本,在运行时,它会创建与文件名相同的文件夹,并将这些文件移动到新创建的文件夹中。
@echo off
for %%i in (*) do (
if not "%%~ni" == "organize" (
md "%%~ni" && move "%%~i" "%%~ni"
)
)
我希望对此进行修改并执行以下操作: 对于以“22 ”开头的文件名 (.htm)。创建一个名为“22”的文件夹并将它们移入其中。对于以“40”开头的文件名。创建一个名为“40”的文件夹并将它们移动到里面等等。
有谁知道怎么做?
解决方案
这应该做你想要的:
@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
)
)
请记住,这不适合目标文件夹中可能存在的重复文件,因为您需要决定是否要覆盖。
推荐阅读
- python - TypeError:异常必须从 BaseException 派生
- php - 用正则表达式,php制作两个不同的字符串块
- ionic-framework - 如果应用程序被杀死,则不会在 iOS 上调用 Ionic 4 FCM.onNotification
- c - 为什么我不能初始化指针变量并且不能使用gets?
- excel - 从 Excel 中的另一张工作表复制后,单元格文本尾随零
- asp.net - ASP.Net 中的 TreeView 导航和 MainContent
- algorithm - 产生低碎片的内存分配算法
- postgresql - PostgreSQL 等效的 SQL 合并触发器和 INSERTED 表
- c# - EF Core ValueObject 比较无法翻译,将在本地评估
- c# - 为什么函数 PrintMaanden() 只打印月份本身,而不是我每个月给的字符串?