【问题标题】:Renaming Folders ascending重命名文件夹升序
【发布时间】: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


【解决方案1】:

我发现了错误

if ($CurrentBackups -ge 1)
{
    Push-Location ($Target + "\WindowsImageBackup\")

    $i= 0
    $xCurrentArray = $CurrentBackups - 1
    $NewSubVersion = $CurrentBackups

    while ($i -lt $CurrentBackups)
    {

        if ($BackupFolder[$xCurrentArray].Contains("_"))
        {

            $Index = $BackupFolder[$xCurrentArray].IndexOf("_")
            $NewName = $BackupFolder[$xCurrentArray].Substring(0, $Index)
            Rename-Item $BackupFolder[$xCurrentArray] -NewName ($NewName + "_" + $NewSubVersion)
            Clear-Variable Index
            $NewSubVersion--
        }
        else
        {
            $NewName = $BackupFolder[$xCurrentArray]
            Rename-Item $BackupFolder[$xCurrentArray] -NewName ($NewName + "_1")
        }
        $i++
        $xCurrentArray--


    }


    Pop-Location
    Clear-Variable i
}

【讨论】:

    猜你喜欢
    • 2014-09-09
    • 2018-08-01
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多