我有数以万计的文件,将需要重命名后,手动操作大批量。所有文件都将有一个条形码,后跟唯一的字母数字识别字符串。它们也都有相同的.PDF扩展名。所有文件的唯一标识符前都应带有下划线。
例如:12 44571 522110_10_E-354-98-U90368.ENG
或:14 44571 500169_9_Monroe NE_G-462-02-5674.GER
重命名这些文件后,我需要保留的是唯一标识符,如下所示:
E-354-98-U90368.ENG
G-462-02-5674.GER
我不精通PowerShell,我发现了一个有效的两步过程,但如果文件名中有错误,首先,它会删除扩展名和上面重要的唯一标识符。
分两步走的过程是这样的。第一,去掉条形码,每个文件在条形码后加上*#。如果它在这之后没有名字,那么我就完了。如果在第二个示例中,条形码和唯一标识符之间有Monroe NE*,我使用第二步。
如何在一步中删除最后一次出现下划线之前的所有内容?
这就是我尝试过的:
第一步:
Get-ChildItem -File "Folder Path Name" | Rename-Item -NewName { $_.Name -replace "Barcode", "" }
第二步:
$Files = Get-ChildItem -Path 'Folder Path Name’ -File
foreach ($File in $Files) {
$Split = $File.Name -split '_'
if ($Split.Count -gt 1) {
Rename-Item -Path $File.FullName -NewName $Split[1]}}
2条答案
按热度按时间cetgtptt1#
要获取数组中的最后一个*项,请使用索引
-1
:qnzebej02#
除了“马蒂亚斯·R·杰森的”有用而简洁的回答外,这里还有另一个选项,可以增加你的信息库。