Вы можете сделать следующее:
$files = Get-ChildItem -Path "C:\PathToMP3Files\[0-6][0-9][0-9].mp3" -File
$files | Rename-Item -NewName {"{0:D3}.mp3" -f ([int]$_.BaseName - 1)} -whatif
Просто удалите параметр -whatif
, чтобы выполнить переименование, если вы удовлетворены результатами.
Объяснение:
Параметр -Path
в Get-ChildItem поддерживает подстановочные знаки. Используя диапазон подстановочных знаков [0-6]
(один символ из набора от 0 до 6), вы можете сузить целевые элементы.
, поскольку New-Item 's -NewName
поддерживает задержку привязка скрипта, вы можете направить ваши объекты FileInfo
непосредственно в команду. Параметр -NewName
управляет свойством Name
объекта. Приведенный выше код использует BaseName
, то есть Name
без расширения, потому что это простой способ выполнить увеличение di git.
-f
- оператор форматирования строки. Он выполняет подстановку {number}
значений в строке. Номер соответствует индексу предмета в коллекции, предоставленной справа от -f
.