Я пытаюсь скопировать все файлы из массива производственных серверов, которые соответствуют определенной дате, введенной пользователем (при необходимости, для подготовки к откату) ... вот что я пробовал:
[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 и т. Д., Но не нашел способа запустить цикл через все это, и в лучшем случае кажется, что он выйдет из строя, если он столкнется с файлом или папкой, которые не работают. t соответствует критериям ... в худшем случае ничего не делает.