2014-09-01 81 views
1

我有一个Powershell不使用下面的代码跨服务器复制最新文件的问题。Powershell复制项高速缓存

$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 
} 

代码应该找到带有前缀“SQL备份”的最新.bak文件并在本地传输。

这个过程工作了一个多月,并且在突然传输时间从5分钟下降到3秒并且正在传输相同的文件时,服务器或进程没有变化。

很多谢谢

+0

我们不能测试你的文件,最后输出什么'Get-ChildItem -Path $ dir | Sort-Object CreationTime -Descending'是否有人可能更改了sql server上的备份扩展? – 2014-09-01 09:55:47

回答

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 
}