Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
Любой язык - [решено] Скопировать файлы из папок

Пользователь


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

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


Здравствуйте, у меня очень нубский вопрос.
Мне надо из очень смешанной структуры папок перенести файлы вместе с папками в которых они расположены.
Из папки _Источник_ надо перенести все *.тхт в папку _Результат_ . Другие файлы не трогать.
Но уже без вложенности. Это что есть:
Код: Выделить весь код
├───Источник
│   │   кит.txt
│   │
│   ├───нудно
│   │   │   ненужен.zip
│   │   │   письмо.txt
│   │   │
│   │   └───долго
│   │       │   пурга.zip
│   │       │
│   │       └───ещё
│   │               винт.txt
│   │               шуруп.txt
│   │
│   └───шмапка
│           лев.txt
│           тигр.txt
А это что нужно получить:
Код: Выделить весь код
└───Результат
    ├───ещё
    │       винт.txt
    │       шуруп.txt
    │
    ├───Источник
    │       кит.txt
    │
    ├───нудно
    │       письмо.txt
    │
    └───шмапка
            лев.txt
            тигр.txt
Спасибо!

Отправлено: 19:09, 16-10-2018

 

Пользователь


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

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


Цитата Iska:
Если результирующий каталог и маски совпадают, то можно сократить до (не проверялось) »
Спасибо!

Отправлено: 17:15, 17-10-2018 | #11



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

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


Аватара для YuS_2

Crazy


Contributor


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

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


Ну и раз уж, любой язык, пусть будет и powershell
Код: Выделить весь код
$fld_src = 'Источник', 'Источник1', 'Источник2'
$fld_dst = 'Результат'
$flt = '*.txt'

dir $fld_src -rec -filt $flt -file|%{$i=0}{
	if (!(test-path (
		$dst = (gi $fld_dst).fullname+'\'+$_.directory.name
	))){md $dst|out-null}
	$fdst = $dst+ '\' + $_.basename
	while (test-path ($fdst + $_.extension)){
		$i = [int] $(if($fdst -match '.*_copy\d+'){
			$fdst -replace '.*_copy(\d)','$1'
		} else {0}) + 1
		$fdst = $dst + '\' + $($_.basename -replace '_copy\d+') + '_copy' + $i
	}
	move $_.fullname ($fdst + $_.extension)
}
Файлы не перезаписываются, а складываются рядом с добавлением к имени _copy1, _copy2, _copy3 и т.д.

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 20:10, 17-10-2018 | #12



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Скопировать файлы-сателлиты из папки в папку Patroklos Скриптовые языки администрирования Windows 6 29-01-2018 12:04
CMD/BAT - Скопировать файлы из папок по определенному названию JKop Скриптовые языки администрирования Windows 19 28-10-2016 21:43
Прочее - как скопировать файлы из EXT2 в NTFS? Victor75 Общий по Linux 10 28-03-2014 01:11
CMD/BAT - скопировать из удаленнего компьютера состоящией в рабочей группе файлы j-kidd999 Скриптовые языки администрирования Windows 0 19-08-2013 13:54
CMD/BAT - Скопировать все файлы из одного каталога в другой Pavelnt Скриптовые языки администрирования Windows 5 10-03-2013 07:08




 
Переход