2014-09-01 5 views
1

У меня возникла проблема с Powershell, которая не копирует последние файлы на разных серверах при использовании кода ниже.Powershell Copy-Item caching

$dir="\\MyServer\SQLBackups\SQL Backup*.bak" 
$FileLocation = "E:\SQLRestore\SQL Backup Latest.bak" 

If (Test-Path $FileLocation){ 
    Remove-Item $FileLocation 
} 

If (Test-Path $dir){ 
    $latest = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -First 1 
    Copy-Item -Path "$latest" -Destination $FileLocation 
} 

Код должен найти последний .bak-файл с префиксом «SQL Backup» и передать его локально.

Этот процесс работал более месяца и без изменений на серверах или в процессе, когда время передачи сократилось с 5 минут до 3 секунд, и тот же файл был передан.

Большое спасибо

+0

Мы не можем проверить ваши файлы, что вывести 'Get-ChildItem -Path $ dir | Sort-Object CreationTime -Descending' возможно ли кто-то изменить расширение резервной копии на сервере sql? –

ответ

0

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

$logfile = "c:\myLogFile.txt" 
If (Test-Path $dir){ 
    $latest = Get-ChildItem -Path $dir | Sort-Object CreationTime -Descending | Select-Object -First 1 
    add-content $logfile "Latest file: is $($latest.FullName)" 
    Copy-Item -Path "$latest" -Destination $FileLocation 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^