batch - 从文件名创建目录并在这些目录中复制这些文件

时间:2013-11-11 15:09:00

标签: batch-file copy

我在文件夹中有很多(50 000+)个文件。它们命名为:“abc_012345678_abcabc.ext”

我需要为每个文件创建一个目录(全部在一个不同的目录中),命名为“数字部分”(012345678),然后将此文件复制到此目录。

所以最后,我有50000多个目录,名为“265415873”,“654879623”等等,每个目录里面都是匹配名称的文件名(所以dir 265478951是一个名为abc_265478951_abcabc.ext的文件)。 / p>

非常感谢任何建议!

编辑: 我已经创建了一个简单的脚本,它可以满足我的需要,所以如果有人感兴趣,那么它就是:

@ECHO OFF
setlocal enabledelayedexpansion
FOR %%f in (*.ext) DO (
  set filename=%%f
  set folder=!filename:~0,-4!
  set copypath=e:\work\programy\adresare_handa\adresare\!folder!
  mkdir !folder!
  copy !filename! !copypath!
)
pause

在这种情况下,我只删除扩展名并使用文件的全名作为目录名称,但我知道,如何更改它,只读取我需要的文件部分。

Thanx很多,如果有人对我的版本(优点/缺点)有任何评论,请,请赐教:)

再见!

1 个答案:

答案 0 :(得分:0)

   @echo off
   pushd "C:\some_dir" 
   for /f "tokens=1,2,3 delims=_" %%A in ('dir /b /s /a-d') do (
      md "%%~B"
      copy %%A_%%B_%%C %%B
    )

仅在所有文件都使用名称模式"abc_012345678_abcabc.ext"

的情况下