win bat命令在此目录下,搜索名字第一个“-”前面字符一样的,并以此名字创建一个文件夹。把这些文件移动到此文件夹
举列:
1文件夹目录下有
雷克萨斯-1-1080p.mp4
雷克萨斯-1-1080p.txt
雷克萨斯-1-1080p.jpg
雷克萨斯-2-1080p.mp4
雷克萨斯-2-1080p.mp3
雷克萨斯-2-1080p.nfc
贝吉塔-1-2k.w
贝吉塔-1-2k.s
贝吉塔-1-2k.a
贝吉塔-4-2k.f
贝吉塔-4-2k.k
贝吉塔-4-2k.g
执行代码后
在1文件夹下有
雷克萨斯(此文件夹下有以下文件)
雷克萨斯-1-1080p.mp4
雷克萨斯-1-1080p.txt
雷克萨斯-1-1080p.jpg
雷克萨斯-2-1080p.mp4
雷克萨斯-2-1080p.mp3
雷克萨斯-2-1080p.nfc
贝吉塔(此文件夹下有以下文件)
贝吉塔-1-2k.w
贝吉塔-1-2k.s
贝吉塔-1-2k.a
贝吉塔-4-2k.f
贝吉塔-4-2k.k
贝吉塔-4-2k.g
@echo off
setlocal enabledelayedexpansion
rem 设置要搜索的文件名前缀
set "search_prefix=-"
rem 获取当前目录路径
for %%A in (.) do set "current_dir=%%~nxA"
rem 创建以搜索字符为名的文件夹
for /f "delims=" %%F in ('dir /b /a-d "%search_prefix%*.*"') do (
set "file=%%~nxF"
for /f "tokens=1 delims=%search_prefix%" %%P in ("!file!") do (
set "folder_name=%%P"
if not exist "!folder_name!" (
mkdir "!folder_name!"
)
move "%%F" "!folder_name!\"
)
)
rem 显示操作完成消息
echo 文件整理完成!
pause
不知道你这个问题是否已经解决, 如果还没有解决的话:@echo off
setlocal enabledelayedexpansion
for %%i in (*) do (
set "filename=%%i"
set "foldername=!filename:~0,-13!"
if not exist "!foldername!" (
mkdir "!foldername!"
)
move "%%i" "!foldername!"
)