Я занят сценарием windows powershell для пакетного переименования группы папок с идентификаторами, который прекрасно работает. У меня вопрос: как добавить проверку, чтобы все идентификаторы были уникальными, когда все мои файлы были переименованы? Вот код:
param(
[Parameter(Mandatory=$true)]
[int]$idx
)
Get-ChildItem *.sql | Foreach-Object {
$iPrefix = ('{0:d5}' -f $idx)
$path = (Split-Path -Path($_))
$filename = (Split-Path -Path($_) -Leaf) -replace "\[|\]",""
#%{ write-host $path}
%{ write-host $filename}
if(!$filename.StartsWith("script","CurrentCultureIgnoreCase"))
{
#%{ write-host "Script$iPrefix - $filename"}
Rename-Item -LiteralPath(($_)) -NewName("Script$iPrefix - $filename")
++$idx
%{ write-host "Renamed: " + $filename}
}
}
Вот скриншот того, чего я хочу избежать:
Как видите, Script02185
повторяется дважды потому что скрипт запускался в два разных раза. Как я могу гарантировать, что номера останутся уникальными?