2017-08-15 243 views
1

我需要创建文件夹并根据文件名的前八个字符将文件重定位到文件夹。该文件将是这样的:批量创建文件夹并根据部分文件名重定位文件

GG001652 - 5211_Infoscitex.xls
GG001652 - 5211-作为7.31.12.pdf
GG001570的 - 7575 FSR(2010年3月31日).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的代码在这个职位,但不能为我的生命得到它的工作:

Batch create folders based on part of file name and move files into that folder

有一个工作的最后期限,我需要适应,所以非常感谢提供任何帮助。

回答

0

如果第一8个字符总是随后空间,
使用FOR/F分裂与缺省的定界符空间和令牌1.名称见ss64.com/nt/for_f

@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 
) 

用于现在替换第一迭代与/ f解析目录更复杂的dir输出将被具有RegEx的findstr过滤以匹配描述的名称结构。
a P或G后跟G后跟6个数字。

+0

太棒了,谢谢!如何编辑以说明变量的第一个字符(P或G)? – Tykal

相关问题