根据文件名中的字符串自动创建文件夹

时间:2018-11-19 02:47:50

标签: batch-file

我需要一个批处理文件来为本地文件夹目录中的大量TIF文件列表(2k)创建一个过程。

文件名结构为:12345_1.tif。

我需要该批处理:

1-根据下划线后的数字创建文件夹名称,因为这是命名中唯一的常数。文件夹仅基于此唯一编号。

2-复制文件并将其移动到新创建的文件夹中。

在上面的示例中,批处理将创建一个名为1的文件夹,然后将文件12345_1.tif移动到该文件夹​​中。如果找到另一个文件,例如54321_1.tif,该文件也将移至“ 1”文件夹。在我的文件中,_后面的数字范围是1到77,并且在_后面可能有多个文件共享相同的数字。

我在线上观察到一些类似的脚本,但是我需要帮助来修改我的要求。可以修改它以满足我的要求吗?

@echo off &setlocal
for /f "delims=" %%i in ('dir /b /a-d *.PDF') do (
    set "filename1=%%~i"
    setlocal enabledelayedexpansion
    set "folder1=!filename1:~11,6!"
    mkdir "!folder1!" 2>nul
    move "!filename1!" "!folder1!"
    endlocal
)

1 个答案:

答案 0 :(得分:0)

您似乎不了解my comment,因此我将其作为完整代码的答案发布在这里:

@echo off
for /F "tokens=1,2 delims=_." %%a in ('dir /B *.tif') do (
   md "%%b" 2>NUL
   move "%%a_%%b.tif" "%%b"
)