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

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

Ответить
Настройки темы
CMD/BAT - [решено] Выбор определенного типа файлов при копировании

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


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

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


Есть папка с большим количеством подпапок. Хочу скопировать эту папку на другой диск, но в ее подпапках должны остаться только 2 типа файлов: один с расширением - nfo, другой - cso. Остальные файлы (архивы релиза, например) из этих подпапок копироваться не должны.
Как это сваять в батнике?

Отправлено: 00:23, 22-08-2012

 

Ветеран


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

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


Если в папках не будет в результате никаких файлов — они всё равно должны создаваться, даже пустые? Так?

Отправлено: 03:33, 22-08-2012 | #2



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

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


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


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

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


Нет в папках будут в любом случае искомые файлы. Возможно отсутствие nfo. Но мысль верная, если файлов нет, то создавать папку стоит, главное чтобы был лог этой операции и я знал, что она пустая.

Отправлено: 08:56, 22-08-2012 | #3


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


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

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


Вот такой вариант на VBS:

Код: Выделить весь код
Dim fso, vLogStream

Const FILE_LOG = "E:\copy.log"

Const FOLDER_SRC = "C:\Folder1"  'откуда (должна сущест-ть)
Const FOLDER_DEST = "D:\Folder2"  'куда (должна сущест-ть)

Const MY_EXTENSION = "nfo,cso"  'типы файлов

Function CopyFoldersAndFiles(strFolderSrc, strFolderDest)
	Dim vFile, vFolder, vSubFolder
	Set vFolder = fso.GetFolder(strFolderSrc)
	strFolderSrc = strFolderSrc & "\"
	strFolderDest = strFolderDest & "\"
	For Each vFile In vFolder.Files
		If InStr(1, MY_EXTENSION, fso.GetExtensionName(vFile.Path), vbTextCompare) Then
			vLogStream.WriteLine "copying file " & vFile.Path & " to " & strFolderDest
			vFile.Copy strFolderDest
		End If
	Next
	For Each vSubFolder In vFolder.SubFolders
		vLogStream.WriteLine "create folder " & strFolderDest & vSubFolder.Name
		fso.CreateFolder strFolderDest & vSubFolder.Name
		CopyFoldersAndFiles strFolderSrc & vSubFolder.Name, strFolderDest & vSubFolder.Name
	Next
End Function

Set fso = WScript.CreateObject("Scripting.FileSystemObject")

Set vLogStream = fso.OpenTextFile(FILE_LOG, 2, True)

CopyFoldersAndFiles FOLDER_SRC, FOLDER_DEST

vLogStream.Close

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

Отправлено: 18:26, 24-08-2012 | #4


Ветеран


Contributor


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

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


Цитата:
Как это сваять в батнике?
Читаем описание команды xcopy /? и решаем задачу в две строки
Код: Выделить весь код
@Echo Off
xcopy /E "D:\Копируемая Папка\*.nfo" "E:\Копируемая Папка\" >"E:\Копируемая Папка.log"
xcopy /E "D:\Копируемая Папка\*.cso" "E:\Копируемая Папка\" >>"E:\Копируемая Папка.log"
Разве что в лог-файле не видно что создались пустые папки (но в постановке этого и не было). По видимому, можно выдать список пустых папок, а зачем они нужны? Я бы их вообще не создавал. (/S в команде Xcopy вместо /E)

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 25-08-2012 в 10:38.

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

Отправлено: 10:21, 25-08-2012 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Удаление каталогов не содержащих файлы определенного типа m3nthal Скриптовые языки администрирования Windows 2 15-01-2012 18:26
Log/Monitoring - Запрет на запись файлов определенного типа и размера andrei.ru Сетевые технологии 1 20-11-2009 11:53
Как в домене вин 2003 запретить пользователям сохранять файлы определенного типа Russo Microsoft Windows NT/2000/2003 5 12-02-2009 10:25
скачивание файлов определенного типа NIGHT_ANGEL Хочу все знать 11 25-02-2005 06:41
как изменить права на файлы только определенного типа Guest Microsoft Windows NT/2000/2003 12 23-03-2004 10:09




 
Переход