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

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

Ответить
Настройки темы
PowerShell - [решено] Копирование из сети в локальную папку с сохранением структуры каталогов

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


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

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


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

Код: Выделить весь код
# переменные
$Data=Get-Date -Format "dd.MM.yyyy"
$CurrentDay=get-date -format "%d"
$newfoldername = [string]$Data +"_"+ "User"
$Source="\\USER-PC\c$\users\User\Desktop"
$Dest="H:\USERPROFILE-BACKUP\Increment\$newfoldername"
$MakeDir=New-Item -Path $Dest -ItemType Directory -force
$getFiles=Get-ChildItem $Source -Recurse | where-object {$_.lastwritetime -lt (get-date).date.adddays(1) -and $_.lastwritetime -ge (get-date).date.adddays(-1)}

#непосредственно скрипт
# копирование с сохранением структуры
$MakeDir
$getFiles | ForEach-Object -Process {Copy-Item -Path $_.FullName -Destination $Dest}
Получилось, чтобы powershell рекурсивно отобрал файлы и скопировал в каталог назначения, а как сделать, чтобы "в соответствующий каталог" копировал - не смог придумать

Отправлено: 16:51, 08-02-2022

 

Deadooshka


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

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


$getFiles содержит массив объектов FileInfo, которые наследует от FileSystemInfo с этим свойством Fullname, которое отдаёт полный путь к файлу в виде строки. Строка тоже объект с кучей методов. Remove отдаёт строку без префикса в виде папки источника, чтобы слева к нему приклеить папку назначения. TrimEnd удаляет возможный конечный слеш папки источника, при наличии которого обрежется слеш в начале (обрезаем по длине пути папки источника).
$new_path.Remove($new_path.LastIndexOf('\')) это [IO.Path]::GetDirectoryName($new_path). Обрезаем всё от последнего слеша до конца. Получаем путь новой папки, чтобы проверить её наличие и создать в случае чего.

Последний раз редактировалось Sham, 17-02-2022 в 03:44.

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

Отправлено: 03:33, 17-02-2022 | #11



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

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


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


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

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


Sham, спасибо, буду все равно, пока практически ничего не понятно Буду смотреть ссылки, читать справочную информацию

Отправлено: 16:35, 17-02-2022 | #12



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Копирование\перемещение с сохранением структуры папок xan08 Скриптовые языки администрирования Windows 6 19-12-2018 18:52
PowerShell - Построчное копирование папок, с сохранением структуры или копирования из файла - Powe morgan-12l1 Скриптовые языки администрирования Windows 2 17-07-2018 18:53
VBS/WSH/JS - Копирование файлов из каталогов и подкаталогов с сохранением структуры подкаталогов spke Скриптовые языки администрирования Windows 0 10-04-2013 23:58
CMD/BAT - [решено] Копирование отдной структуры каталогов в другую siff009 Скриптовые языки администрирования Windows 6 01-06-2012 13:23
CMD/BAT - [решено] Конвертирование файлов с сохранением структуры каталогов Sarge81 Скриптовые языки администрирования Windows 3 17-09-2010 07:12




 
Переход