PowerShell中拷贝项目缓存(Powershell Copy-Item caching)

2019-10-20 20:38发布

我有使用下面的代码时,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秒钟,同样的文件被转移。

非常感谢

Answer 1:

一些日志语句添加到您的脚本,看看到底发生了什么。 像现在这样,

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


文章来源: Powershell Copy-Item caching