Копирование нескольких элементов с помощью Powershell и shell.application.copyHere - PullRequest
0 голосов
/ 24 февраля 2020

Я использую типичный метод для копирования элементов в powershell с помощью собственного Windows диалогового окна копирования.

$trnsfr = New-Object -ComObject "Shell.Application"
$target_folder = $trnsfr.NameSpace($trgdir) 
$target_folder.CopyHere($srcdir)

Все отлично работает, но мне было интересно, есть ли способ, которым я мог бы предоставить список элементов для копирования, а не один путь?

1 Ответ

0 голосов
/ 25 февраля 2020

Исходя из моего первого комментария выше ...

$trnsfr = New-Object -ComObject "Shell.Application"
$srcdirs = 'D:\Temp\Source','D:\temp\est'
$trgdir = 'D:\temp\Target'
$target_folder = $trnsfr.NameSpace($trgdir)

Try {(Get-ChildItem -Path $trgdir).GetDirectories()}
Catch {Write-Warning -Message "Nothing in $trgdir"}
<#
# Results

WARNING: Nothing in D:\temp\Target
#>

ForEach ($srcdir in $srcdirs)
{$target_folder.CopyHere($srcdir)}
Get-ChildItem -Path $trgdir
<#
# Results

    Directory: D:\temp\Target

Mode                LastWriteTime         Length Name                                                                                                                              
----                -------------         ------ ----                                                                                                                              
d-----        17-Feb-20     15:50                est                                                                                                                               
d-----        24-Feb-20     20:39                Source
#>

Или вы пытались избежать использования каких-либо собственных командлетов PowerShell?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...