【发布时间】:2016-01-14 08:56:49
【问题描述】:
我想自动化我的备份并始终保留一些旧版本。这个想法是在共享上使用 Windows 备份并使用 PowerShell 脚本来启动它。
我快完成了,但我坚持重命名。
分享:\\Server\SysBackup\WindowsImageBackup
在该共享中,有我拥有的所有 PC 的文件夹。所以例如我想保留最后三个备份,它应该如下:
当前备份:PC1
旧备份:PC1_1、PC1_2
现在我想将它们重命名为更高的数字
PC1_2 → PC1_3
PC1_1 → PC1_2
PC1 → PC1_1
因此备份现在可以使用 PC1 文件夹进行最新备份。
这就是我到目前为止所尝试的:
$BackupFolder = Get-ChildItem -Directory ($Target + "\WindowsImageBackup") |
Where-Object -Property Name -Like $env:computername* |
Select-Object -Property Name
$CurrentBackups = $BackupFolder.Count
if ($CurrentBackups -ge 1) {
Push-Location ($Target + "\WindowsImageBackup")
$i = 0
$xCurrentArray = $CurrentBackups - 1
$NewSubVersion = $CurrentBackups
while ($i -le $CurrentBackups) {
$NewName = $BackupFolder[$xCurrentArray].Name.TrimEnd("_")
Rename-Item $BackupFolder[$xCurrentArray] -NewName
}
Pop-Location
Clear-Variable $i
}
文件未重命名,我收到以下错误:
您不能在空值表达式上调用方法。
重命名项目:缺少参数“NewName”的参数。指定“System.String”类型的参数,然后重试。
我的错误在哪里?
【问题讨论】:
-
这个错误实际上是不言自明的。你有什么不明白的?你正在运行
Rename-Item source_path -NewName <new_name_missing_here>。您需要指定要将给定文件夹重命名为的名称。
标签: powershell