提取并重命名子文件夹内文件,新建文件夹放在一起

所有的子文件夹

img


子文件夹内文件编号

img


提取出每一个子文件夹内的00(不能是包含00,因为有001.002.003,在bat里文件名可以改动,所需要的文件名字不止00)放在同一个文件夹内,并且带上子文件夹的名字,如0570文件夹内的00,就是0570-00,-可以其他符号。

img

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

SET FILE_NAME_TO_MOVE=00
SET TARGET_DIR=test

CD "%~dp0"

IF NOT EXIST "%~dp0%TARGET_DIR%" MKDIR "%~dp0%TARGET_DIR%"

FOR /R "%~p0" %%I IN (00.jpg) DO (
    FOR %%J IN ("%%~dpI.") DO SET "FOLDER_NAME=%%~nJ"
    IF NOT "%%I" == "%~dp0%TARGET_DIR%\!FOLDER_NAME!-%%~nxI" (
        ECHO Moving "%%I" to "%~dp0%TARGET_DIR%\!FOLDER_NAME!-%%~nxI" ...
        MOVE "%%I" "%~dp0%TARGET_DIR%\!FOLDER_NAME!-%%~nxI"
    )
)

ENDLOCAL
PAUSE
ECHO ON

可以参考一下该博客http://t.csdn.cn/3wYPI,希望能对您有所帮助

test.bat

rem Copy all file.ext in all folder xx\ to 00\xx-file.ext but 00\file.ext
@echo off
for /f %%d in ('dir /b /ad') do (
    if not "%%d"=="00" (
        cd %%d
        for /f %%f in ('dir /b /a-d') do (
            echo copy /y %%f ..\00\%%d-%%f
            copy /y %%f ..\00\%%d-%%f >NUL 2>NUL
        )
        cd ..
    )
)