Batch file 基于部分文件名批量创建文件夹并重新定位文件

Batch file 基于部分文件名批量创建文件夹并重新定位文件,batch-file,Batch File,我需要创建文件夹,并根据文件名的前八个字符将文件重新定位到文件夹中。这些文件将如下所示: GG001652-5211_Infoscitex.xls GG001652-5211-截至2012年7月31日.pdf GG001570-7575 FSR(3.31.2010).pdf GG001570-7575_IC_6.30.12.xlsx GG001570-7575_SF 425_6.30.12.xls 我希望批处理创建两个文件夹: GG001622 GG001570 每个包含以这8个字符开头的文件。

我需要创建文件夹,并根据文件名的前八个字符将文件重新定位到文件夹中。这些文件将如下所示:

GG001652-5211_Infoscitex.xls
GG001652-5211-截至2012年7月31日.pdf
GG001570-7575 FSR(3.31.2010).pdf
GG001570-7575_IC_6.30.12.xlsx
GG001570-7575_SF 425_6.30.12.xls

我希望批处理创建两个文件夹:

GG001622
GG001570

每个包含以这8个字符开头的文件。文件长度和命名不一致,但前8个字符是标准化的,文件类型包括.pdf、.doc、.docx、.xls、.xlsx和.msg

在这篇文章中花了好几个小时试图修改Magoo的代码,但我一生都无法让它工作:


有一个我需要满足的工作期限,因此非常感谢提供的任何帮助。

如果前8个字符后面总是有空格,
使用for/f将名称拆分为默认分隔符空格和标记1。看

现在,对的第一次迭代被更复杂的for/f解析dir输出所取代,该输出由带有正则表达式的findstr进行过滤,以匹配所描述的名称结构。

一个P或G,后面跟着一个G,后面跟着6个数字。

太棒了,谢谢!如何编辑以说明变量的第一个字符(P或G)?
@Echo off
for /f "delims=" %%A in (
  'DIr /B /A-D "* - *.*" ^| findstr /I "^[PG]G[0-9][0-9][0-9][0-9][0-9][0-9].-..* '
) Do for /f %%B in ("%%A") do (
    MD %%B >NUL 2>&1 
    Move "%%A" %%B
)