You could scan your target directory to extract the list of all the files indexes, use the Measure-Object
CmdLet to identify the maximum index, add one and then move the file.
I did this to setup a test env.:
$rootDirectory = "C:\test"
$filePrefix = "12122_"
$fileExt = ".txt"
$filePathFmt = "{3}\{1}{0,6:000000}{2}"
@(1..12) | % { New-Item ([String]::Format($filePathFmt, $_, $filePrefix, $fileExt, $rootDirectory)) -Type File } | Out-Null
New-Item ([String]::Format($filePathFmt, 0, $filePrefix, $fileExt, "C:")) -Type File | Out-Null
This to mode the 0 indexed file to the target directory:
$nextIdx = (Get-ChildItem $rootDirectory -Filter "${filePrefix}*${fileExt}" | Select-Object -ExpandProperty Name | ForEach-Object { [int]($_.Replace($filePrefix,"").Replace($fileExt, "")) } | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum) + 1
Move-Item ([String]::Format($filePathFmt, 0, $filePrefix, $fileExt, "C:")) ([String]::Format($filePathFmt, $nextIdx, $filePrefix, $fileExt, "$rootDirectory"))
It output:
PS C:\> $rootDirectory = "C:\test"
PS C:\> $filePrefix = "12122_"
PS C:\> $fileExt = ".txt"
PS C:\> $filePathFmt = "{3}\{1}{0,6:000000}{2}"
PS C:\> @(1..12) | % { New-Item ([String]::Format($filePathFmt, $_, $filePrefix, $fileExt, $rootDirectory)) -Type File } | Out-Null
PS C:\> New-Item ([String]::Format($filePathFmt, 0, $filePrefix, $fileExt, "C:")) -Type File | Out-Null
PS C:\> Get-ChildItem $rootDirectory | Select-Object -ExpandProperty FullName
C:\test\12122_000001.txt
C:\test\12122_000002.txt
C:\test\12122_000003.txt
C:\test\12122_000004.txt
C:\test\12122_000005.txt
C:\test\12122_000006.txt
C:\test\12122_000007.txt
C:\test\12122_000008.txt
C:\test\12122_000009.txt
C:\test\12122_000010.txt
C:\test\12122_000011.txt
C:\test\12122_000012.txt
PS C:\> $nextIdx = (Get-ChildItem $rootDirectory -Filter "${filePrefix}*${fileExt}" | Select-Object -ExpandProperty Name | ForEach-Object { [int]($_.Replace($filePrefix,"").Replace($fileExt, "")) } | Measure-Object -Maximum | Select-Object -ExpandProperty Maximum) + 1
PS C:\> Move-Item ([String]::Format($filePathFmt, 0, $filePrefix, $fileExt, "C:")) ([String]::Format($filePathFmt, $nextIdx, $filePrefix, $fileExt, "$rootDirectory"))
PS C:\> Get-ChildItem $rootDirectory | Select-Object -ExpandProperty FullName
C:\test\12122_000001.txt
C:\test\12122_000002.txt
C:\test\12122_000003.txt
C:\test\12122_000004.txt
C:\test\12122_000005.txt
C:\test\12122_000006.txt
C:\test\12122_000007.txt
C:\test\12122_000008.txt
C:\test\12122_000009.txt
C:\test\12122_000010.txt
C:\test\12122_000011.txt
C:\test\12122_000012.txt
C:\test\12122_000013.txt
PS C:\>