1

我有以下哈希表。

$m = @{
    "AAA" = "XX";
    "BBB" = "YY";
    "CCC" = "ZZ";
    ....
}

我想将名称以“AAA”开头的文件重命名为“XX....”,“BBB”为“YY....”等。例如,“AAA1234.txt”将重命名为“XX1234” 。文本文件”。

如何在 Powershell 中做到这一点?

4

2 回答 2

2

这段代码对我有用:

$m = @{"AAA" = "XX"; "BBB" = "YY"}
$files = gci *.txt
$m.GetEnumerator() | % {
    $entry = $_ # save hash table entry for later use
    $files | ? { $_.Name.StartsWith($entry.Key) } | 
        % {
            $trimmed = $_.Name.Substring($entry.Key.length) # chops only the first occurence
            $newName = $entry.Value + $trimmed
            $_ | Rename-Item -NewName $newName        
        }        
}
于 2012-05-02T18:40:45.807 回答
0

太好了..清楚地解释了。但这将重命名完整的文件夹名称..直截了当。

$m = @{"AA" = "XX"; "BB" = "YY"}
$files = Get-ChildItem -Path C:\test\ -Directory
$m.GetEnumerator() | %{Rename-Item "C:\test\$($_.Key)" -NewName "C:\test\$($_.value)" -Force
}
于 2022-01-30T03:55:10.007 回答