Sorting 将文件移动到具有相同名称的文件夹

Sorting 将文件移动到具有相同名称的文件夹,sorting,batch-file,cmd,Sorting,Batch File,Cmd,我有1000个后缀为-PRO1和-PPR2的文件(每个文件1000个),因此我有1000个同名但没有后缀的文件夹 例如,我有一个名为Abstract\u color的文件夹,我有文件Abstract\u color-PRO1和Abstract\u color-PPR2等等 我想做一批能够自动移动所有文件,我有这个代码(从另一篇文章) 但它所做的是,如果文件有超过4个字符,它将创建一个包含前4个字符的文件夹。。。我想做的是,批处理识别文件名并在-处停止,然后移动到文件夹 谢谢您的时间:) @ech

我有1000个后缀为
-PRO1
-PPR2
的文件(每个文件1000个),因此我有1000个同名但没有后缀的文件夹

例如,我有一个名为
Abstract\u color
的文件夹,我有文件
Abstract\u color-PRO1
Abstract\u color-PPR2
等等

我想做一批能够自动移动所有文件,我有这个代码(从另一篇文章)

但它所做的是,如果文件有超过4个字符,它将创建一个包含前4个字符的文件夹。。。我想做的是,批处理识别文件名并在
-
处停止,然后移动到文件夹

谢谢您的时间:)

@echo off 
setlocal enabledelayedexpansion
pushd "C:\Folders\"
for %%a in (*) do (
  set fldr=%%~na
  set fldr=!fldr:~0,4!
  md "!fldr!"
  move "%%a" "!fldr!"
)
popd
pause
exit
@echo off
pushd "C:\Folders"
rem Process all files in this folder separating the names at "-"
for /F "tokens=1* delims=-" %%a in ('dir /B *.*') do (
   rem At this point %%a have the name before the "-" and %%b the rest after "-"
   rem Create the folder, if not exists
   if not exist "%%a" md "%%a"
   rem Move the file there
   move "%%a-%%b" "%%a"
)
popd