PowerShell-复制项无法将参数绑定到参数 'path',因为它为空

PowerShell- copy item cannot bind argument to parameter 'path' because it is null

我需要创建一个 PowerShell 脚本,每月从 PROD 服务器复制我的备份文件以在 DEV 服务器上恢复它。然后我需要通过两个步骤创建一个 SQL 代理作业。第一步是将那些复制的文件恢复到 DEV 服务器上。第二步是执行清理 redundant/inconsistent 数据的 SP。

到目前为止这是我创建的脚本

# begin set vars
$BackupDir = "C:\SQL Installs\Backups\Full Backups\Sample_full.bak" # where backups are stored
$WorkDir =   "C:\SQL Installs\Backups\Test Backups"       # where you are copying backup to
# end set vars
 
Set-Location $WorkDir
$LatestBackupFileName = (Get-ChildItem $BackupDir\*.bak | sort LastWriteTime | select -last 1)
Copy-Item $LatestBackupFileName -Destination $WorkDir\AutomatedDbRefresh.bak -Force

这是结果输出 - 显示路径为空。

Set-Location $WorkDir
$LatestBackupFileName = (Get-ChildItem $BackupDir\*.bak | sort LastWriteTime | select -last 1)
Copy-Item $LatestBackupFileName -Destination $WorkDir\AutomatedDbRefresh.bak -Force
Copy-Item : Cannot bind argument to parameter 'Path' because it is null.
At line:8 char:11
+ Copy-Item $LatestBackupFileName -Destination $WorkDir\AutomatedDbRefr ...
+           ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Copy-Item], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.CopyItemCommand

有人可以告诉我如何避免这个错误以及我可能需要在我的脚本中修复什么吗?

这似乎是因为 $BackupDir 引用的是文件而不是文件夹。

$BackupDir = "C:\SQL Installs\Backups\Full Backups\Sample_full.bak"。 为了让它工作 $BackupDir 需要类似于 $BackupDir = "C:\SQL Installs\Backups\Full Backups" 完成此操作后,您应该能够使这条线工作。
$LatestBackupFileName = (Get-ChildItem $BackupDir*.bak | 排序 LastWriteTime | select -last 1)