Я пытаюсь скопировать все файлы из массива производственных серверов, которые соответствуют указанной c введенной пользователем дате (для подготовки к откатам при необходимости) ... вот что я пробовал:
[string[]]$ProdServerArray = "prdserver1", "prdserver2", "prdserver3"
[string[]]$InterfaceArray = "interfacefolder1", "interfacefolder2", "interfacefolder3", "interfacefolder4", "interfacefolder5"
New-Item -ItemType "directory" -Path "C:\GetFilesResults\$($date.toshortdatestring().replace("/","-"))\$search" -Force
$LocalPath = "C:\GetFilesResults\$($date.toshortdatestring().replace("/","-"))\$search"
do
{
$date = Read-host "Enter date (MM/DD/YYYY): "
}
while ($date -as [datetime] -isnot [datetime])
$date = $date -as [datetime]
$date
$search = foreach ($ProdServer in $ProdServerArray)
{
foreach ($Interface in $InterfaceArray)
{
'\\{0}\InterfaceFiles\{1}\' -f $ProdServer, $Interface
Get-ChildItem $search -File -Recurse | Where {$_.LastWriteTime -gt $date.date} | ForEach {
$actualSource = Split-Path $_.FullName
$actualDest = Split-Path $_.FullName.Replace($search,$LocalPath)
robocopy $actualSource $actualDest $_.Name /SEC }
}
}
Мне удалось получить структуру папок, которая мне нужна - "\ prdserver1 \ InterfaceFiles \ interfacefolder1 \", но я не смог получить дату создания / изменения файлов внутри этих папок и скопировать их их на мою локальную машину. Я пытался Copy-Item, robocopy, batch и т. Д. c., Но не нашел способа запустить al oop через все это, и в лучшем случае он, похоже, разорвется, если столкнется с файлом или папка, которая не соответствует критериям ... в худшем случае ничего не делает.