2015-04-15 4 views
1

У меня есть каталог с подпапками XX и рядом с YY-файлами внутри этих подпапок (до слоев ZZ). Файлы: .jpg или .png, а каждое расширение имеет уникальное имя файла. Мне нужно скопировать файлы в корень (в другой каталог), не создавая структуру подпапки, например xcopy, но с последней папкой.Пакетный файл: копирование файлов с последним каталогом в другой каталог

Существующее:

Dir1\Folder1\Holiday.jpg 
Dir1\Folder3\Picture.png 
Dir1\Folder3\Mobile.jpg 
Dir1\Folder3\Dir2\000114.jpg 
Dir1\Folder3\Dir2\000115.jpg 
Dir1\Folder3\Dir2\000116.jpg 
Dir1\Folder5\Dir3\A.jpg 
Dir1\Folder5\Dir3\B.png 
Dir1\Folder5\Dir3\Dir4\a1.jpg 
Dir1\Folder5\Dir3\Dir4\b12.png 
Dir1\Folder5\Dir3\Dir4\c45.jpg 

Обязательно:

Dir1\Holiday.jpg 
Folder3\Picture.png 
Folder3\Mobile.jpg 
Dir2\000114.jpg 
Dir2\000115.jpg 
Dir2\000116.jpg 
Dir3\A.jpg 
Dir3\B.png 
Dir4\a1.jpg 
Dir4\b12.png 
Dir4\c45.jpg 

ответ

1

Это должно помочь вам начать:

первый цикл перебирает всю структуру каталогов. %% i будет полным путем к файлу. Второй цикл for просто используется для просмотра пути к каталогу, исключая последний '\', поэтому он выглядит как полный путь к файлу!

@echo off 
SETLOCAL ENABLEDELAYEDEXPANSION 
for /r %%i in (*) do (
    set pt=%%~pi 
    for %%j in ("!pt:~0,-1!") do (
     echo LastDir=%%~nxj 
     echo Filename=%%~nxi 
     echo. 
    ) 
) 
+0

Большое спасибо, вы настоящий мастер. Я добавил только следующее: - кавычки для имен путей с пробелами: копировать «%% i» «%% ~ nxj»; - Функция существует: если не существует "%% ~ nxj" md "%% ~ nxj" Университет Дж. Пуркинье –

Смежные вопросы