|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Копирование файла с полной структурой директорий |
|
PowerShell - Копирование файла с полной структурой директорий
|
Старожил Сообщения: 221 |
Доброго времени суток всем!
Никак не получается копирование файла с полной структурой папок. Вроде и не сложный вопрос, но перепробовал и Xcopy, Robocopy и просто Copy-Item, файл копируется без папок. Собственно, к примеру, есть путь: Нужно скопировать файл README.txt на другой раздел, к примеру D, чтобы сохранилась вся структура, включая корневую директорию. В директории papka2 могут быть и другие файлы и папки, но нужно скопировать только файл README.txt В итоге на диске D должна получится такая структура: Буду премного благодарен за советы и подсказки. |
|
Отправлено: 15:57, 16-01-2021 |
Старожил Сообщения: 221
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
Цитата Iska:
|
||
Отправлено: 12:52, 21-01-2021 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1176
|
Профиль | Отправить PM | Цитировать Uragan66,
вообще, смотрите в сторону утилиты robocopy, у неё достаточно широкий функционал, в том числе и копирование со структурой... Но если таки необходимо на powershell: script.ps1
<# .SYNOPSIS Копирование или псевдоперемещение файлов и каталогов с сохранением структуры .Description Скрипт предназначен для копирования или перемещения файлов из одного каталога в другой, при этом сохраняется вложенная структура каталогов. Фактически, перемещение не выполняется, вместо него работает копирование с последующим удалением скопированнных итемов. .Parameter Source Необязательный: Исходный каталог для выборки элементов. Указывается либо относительный, либо абсолютный путь. .Parameter Destination Необязательный: Целевой каталог. Указывается либо относительный, либо абсолютный путь. .Parameter Include Необязательный: маска(и) для включения файлов в выборку .Parameter Exclude Необязательный: маска(и) для исключения файлов из выборки .Parameter Delete Переключатель: Если указан, то будут удалены исходные файлы, включенные в выборку, рекурсивно .Parameter Emptydelete Переключатель: Если указан, то будут удалены пустые подкаталоги в исходном каталоге, рекурсивно .Example .\script.ps1 -sourc "D:\FOLDER1" -dest "d:\Folder2" -incl '*.pdf','*.txt' -excl '*_out.*' -del Это пример перемещения файлов по маскам '*.pdf','*.txt' с исключением из выборки по маске '*_out.*', с последующим удалением исходных элементов. Пустые каталоги не удаляются. .Example .\script.ps1 Это пример копирования/перемещения файлов/каталогов, с сохранением структуры, но по указанным в самом скрипте параметрам... .Notes Created By YuS Version: 1.00 #> # requires v 3.0 param ( [string] $source = ".\Folder1", [string] $destination = ".\Folder2", [string[]] $include = '*.*', [string[]] $exclude = '', [switch] $delete, [switch] $emptydelete ) $src = gi -lit $source -force # копирование файлов с сохранением структуры dir -lit $src.fullname -inc $include -exc $exclude -rec -force|copy -d { $d = split-path $_.fullname.replace("$($src.fullname)",$destination) if (!(test-path -lit $d)){md $d -force} else {$d} } -force #-whatif if ($delete) { # удаляем все скопированные файлы dir -lit $src.fullname -inc $include -exc $exclude -rec -force -file| del -force -rec } if ($emptydelete) { # удаляем пустые каталоги dir -lit $src.fullname -rec -dir -force|sort{$_.fullname.length} -des|%{ if((dir -lit $_.fullname -rec -force) -eq $null){ del -lit $_.fullname -force } } } |
------- Отправлено: 13:30, 21-01-2021 | #12 |
Забанен Сообщения: 793
|
Цитата Uragan66:
|
|
Отправлено: 12:35, 22-01-2021 | #13 |
Старожил Сообщения: 221
|
Профиль | Отправить PM | Цитировать Цитата YuS_2:
Цитата greg zakharov:
|
||
Отправлено: 16:49, 22-01-2021 | #14 |
Crazy Сообщения: 1176
|
Профиль | Отправить PM | Цитировать Цитата Uragan66:
А, да, есть ещё одна "неприятность" - в powershell 5.1, при использовании параметра -literalpath, параметр -include не работает, но его можно заменить на параметр -filter, либо воспользоваться крайней версией powershell, т.е. способ обхода бага есть. |
|
------- Отправлено: 21:38, 22-01-2021 | #15 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование папок с файлами с сохранением директорий по маскам | buntr | Скриптовые языки администрирования Windows | 19 | 22-06-2018 07:03 | |
PowerShell - [решено] Изменение xml файла со сложной многоуровневой структурой | Bolshoi | Скриптовые языки администрирования Windows | 3 | 17-01-2018 10:58 | |
CMD/BAT - Копирование со структурой | westovich | Скриптовые языки администрирования Windows | 6 | 09-06-2016 08:34 | |
CMD/BAT - [решено] Копирование файлов из переменных директорий | Сантей | Скриптовые языки администрирования Windows | 9 | 25-06-2014 14:57 | |
Автоматический запуск пакетного файла после полной загрузки ОС | ChVL | Автоматическая установка Windows 2000/XP/2003 | 8 | 11-05-2007 00:16 |
|