我有以下哈希表。
$m = @{
"AAA" = "XX";
"BBB" = "YY";
"CCC" = "ZZ";
....
}
我想将名称以“AAA”开头的文件重命名为“XX....”,“BBB”为“YY....”等。例如,“AAA1234.txt”将重命名为“XX1234” 。文本文件”。
如何在 Powershell 中做到这一点?
我有以下哈希表。
$m = @{
"AAA" = "XX";
"BBB" = "YY";
"CCC" = "ZZ";
....
}
我想将名称以“AAA”开头的文件重命名为“XX....”,“BBB”为“YY....”等。例如,“AAA1234.txt”将重命名为“XX1234” 。文本文件”。
如何在 Powershell 中做到这一点?
这段代码对我有用:
$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
}
}
太好了..清楚地解释了。但这将重命名完整的文件夹名称..直截了当。
$m = @{"AA" = "XX"; "BB" = "YY"}
$files = Get-ChildItem -Path C:\test\ -Directory
$m.GetEnumerator() | %{Rename-Item "C:\test\$($_.Key)" -NewName "C:\test\$($_.value)" -Force
}