Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение файлов в каталог из подкаталога с удалением подкаталогов

Ответить
Настройки темы
CMD/BAT - Перемещение файлов в каталог из подкаталога с удалением подкаталогов

Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день!

Прошу помочь в составлении BAT-файла для следующей задачи:
1. Есть каталог C:\1
2. В каталоге C:\1 размещены подкаталоги с разными именами A, B, C и т.д.
3. Подкаталог:
A содержит файлы файл1, файл4...
B содержат файлы файл4, файл7, файл8
С содержит файлы файл3...
и т.д.

Необходимо переместить файлы из подкаталогов A, B, C и т.д. в каталог C:\1 и удалить пустые подкаталоги A, B, C и т.д.

Заранее благодарю!

Отправлено: 15:50, 30-11-2014

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sSourceFolder=C:\1

if exist "%sSourceFolder%\." (
	for /d %%i in ("%sSourceFolder%\*.*") do (
		move "%%~i\*.*" "%sSourceFolder%\"
		rd "%%~i"
	)
) else (
	echo Can't find source folder [%sSourceFolder%].
	exit /b 1
)

endlocal
exit /b 0
Существующие файлы будут перезаписаны без предупреждения. Аналогично и с одноимёнными в исходных подкаталогах — останется только перемещённый последним.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:04, 30-11-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


Rema, с проверкой на наличие файлов с одинаковым именем
Код: Выделить весь код
@echo off
setlocal

for %%i in (x y z) do if not exist %%i: set disk=%%i:

subst %disk% "C:\1"
pushd %disk% || goto:eof

for /f "tokens=*" %%i in (' dir /b /s /a-d ') do call:move "%%i"
for /f %%i in (' dir /b /ad ') do rd /s /q "%%i"

popd
subst %disk% /d
goto:eof


:move

set "file=%~nx1%"
set "cnt="

:check
    
set /a cnt+=1
if not exist "%file%" ( move %1 "%file%" ) else (

    set "file=%~n1_%cnt%%~x1"
    goto:check
    
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:57, 30-11-2014 | #3


Новый участник


Сообщения: 18
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, отлично решило мою задачу.

Foreigner, получилось что батник нашел файлы в подкаталогах каталога, переместил их в каталог, содержащий данные подкаталоги, удалил подкаталоги, но зачем то переименовал эти файлы...

Отправлено: 17:09, 30-11-2014 | #4


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Foreigner, а "subst" применили, чтобы уменьшить возможные ошибки "dir"?

Отправлено: 17:12, 30-11-2014 | #5


Ветеран


Сообщения: 1759
Благодарности: 966

Профиль | Цитировать


Georgio,

Случайно получилось... Перепутал с другой типовой задачей (обрезка пути). Конечно можно без subst

Цитата Rema:
но зачем то переименовал эти файлы... »
Все? Или только те, которые с одинаковым именем?

Отправлено: 18:23, 30-11-2014 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Перемещение файлов в каталог из подкаталога с удалением подкаталогов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование файлов из подкаталогов и их переименование в название папки lexxxyatina Скриптовые языки администрирования Windows 7 13-11-2014 09:44
CMD/BAT - перемещение файлов в каталог созданный из части имени файла surrender1 Скриптовые языки администрирования Windows 9 10-10-2013 14:42
VBS/WSH/JS - Копирование файлов из каталогов и подкаталогов с сохранением структуры подкаталогов spke Скриптовые языки администрирования Windows 0 10-04-2013 23:58
CMD/BAT - копирование файлов из подкаталогов bojfriend Скриптовые языки администрирования Windows 8 31-08-2011 01:49
CMD/BAT - [решено] перемещение по маске из подкаталогов в корень shadowbat Скриптовые языки администрирования Windows 4 24-05-2010 20:18




 
Переход