У меня есть эта схема
ИСТОЧНИК
FOLDER_A
---FOLDERA1
------file1.abc
------file2.abc
------file2.txt
---FOLDERB1
------file3.abc
------file4.abc
------file.txt
Я хочу создать пакетный скрипт, который копирует только в новую папку
НАЗНАЧЕНИЯ
FOLDER_A1
---file1.abc
---file2.abc
FOLDERB1
---file3.abc
---file4.abc
установка в месте назначения только второго уровня (FOLDER_A
следует удалить) и фильтрация только файлов с расширением .abc
Я написал этот код
@echo off
set SOURCE_DIR=C:\Users\%username%\Desktop\SCRIPT\source2
set DEST_DIR=C:\Users\%username%\Desktop\SCRIPT\dest
pause
setlocal enabledelayedexpansion
for /f "delims=" %%a In ('dir /ad/b %SOURCE_DIR% ') do (
set current_folder=%SOURCE_DIR%\%%a\
mkdir "dest\%%a"
for /r %SOURCE_DIR% %%f in (*.abc) do (
@copy "%%f" "dest\%%a"
)
pause
)
@pause
Проблема в том, что в папке назначения у меня есть папка с правильным именем, но внутри них каждый раз 4 файла file1.abc
, file2.abc
, file3.abc
и file4.abc
.
Цель состоит в том, чтобы внутри первой папки были только file1.abc
и file2.abc
, а во второй папке file3.abc
и file4.abc
.
Где ошибка?