Здравствуйте, я впервые использую Powershell, и я хотел бы отсортировать мои файлы (пример имени: 5035 facture coop.pdf) по 4 первым цифрам в их именах и переместить их в другие папки (например, имена: 5100 субвенция). , 5150 донов, 5200 копеек и т. Д.)
В папках должны быть файлы, меньшие или равные числу в их имени, но превышающему тот, что находится в папке под ними.
пример: 5035 фактура X.pdf будет помещаться в папку 5100 субвенции, но 5101 фактура y.pdf будет помещаться в папку 5150 dons
Я пытался собрать некоторый код из другого места вфорум и другой форум, но мне не удалось, несчастно
Папка, в которой находятся файлы
$TopFolder = "C:\Users\Administration\Desktop\scannes"
Папка, в которой расположены папки назначения
$destination = "C:\Users\Administration\Desktop\comptabilité essai"
Получение файлов
$Folders = gci $TopFolder -OutVariable Files | ? { $_.PSisContainer }
Цикл по всем файлам с расширением * .docx
$Files | ? { $_.Extension -eq '.docx' } | % {
# Split FileName to get the number
$num = ($_.Name -split " ")[0]
# Get FolderName and compare it to number
$MoveTo = $destination | ? { $_.Name.substring(0,4) -ge $num }
# If a folder was found, move file there. else print error
if ($MoveTo)
{
Move-Item $_.FullName $MoveTo
Write-Host "Copied File $($_.Name) to $MoveTo"
}
else
{
Write-Host "Did not find folder $($num) in $TopFolder"
}
}
Я не знаю, как сделать правило для меньшего или равного, но большего, чем для другой папки, И оно невообще не работает.