У меня есть большое количество папок с такими именами:
C:\Folders\A
C:\Folders\A\AB\ABC
C:\Folders\E\EA\EAB\EABA
C:\Folders\A\AZ\AZA
C:\Folders\B\BA\BAE
И в скрипте PowerShell я хочу переместить некоторые файлы (или создать каталог, если он не существует) вправоместо.Например, файлABC.txt в C: \ Folders \ A \ AB \ ABC и FileBA.txt в C: \ Folders \ B \ BA.
Теперь у меня есть следующее:
$naming
просто содержит все буквенные коды из CSV.
if ($naming -match '^A$') {
$folderA = C:\Folders
New-Item -Name $naming -Path $folderA -Type Directory
}
, который создает C: \ Folders \ A.Поэтому я делаю то же самое для всех остальных папок верхнего уровня (их всего 6).
Для сопоставления двухбуквенных путей, которые я делаю:
if ($naming -match '^A[A-Z]{1}$'){
$folderA2 = "C:\Folders\A\"
New-Item -Name $naming -Path $folderA2 -Type Directory
}
Что создает C: \Папки \ A \ AA, C: \ Папки \ A \ AB и т. Д.
Проблема возникает, когда я хочу создать 3 или 4-буквенные каталоги:
Я попробовал это:
if ($naming -match '^A[A-Z]{2}$') {
$folderA3 = 'C:\Folders\A\$($naming)\'
New-Item -Name $naming -Path $folderA3 -Type Directory
}
и:
if ($naming -match '^A[A-Z]{3}$') {
$folderA3 = 'C:\Folders\A\$($naming)\$($naming)\'
New-Item -Name $naming -Path $folderA3 -Type Directory
}
Но файлы размещены неправильно.Например, файлABAB.txt перемещается в случайные места, такие как C: \ Folders \ A \ AK \ ABC.
@ edit
Я также заметил, что папки создаются не в нужном месте.Папки с комбинациями из 3 или 4 букв размещаются в случайном порядке:
C:\Folders\E\EA\EBC
C:\Folders\A\AB\AZA
C:\Folders\E\EC\EFG\ECXA
Я мог бы сделать:
if ($naming -match '^AB[A-Z]{2}$')
if ($naming -match '^AC[A-Z]{2}$')
Но тогда мне нужно было бы сделать одну для каждой буквы AZ, чтоя чувствую, что в этом нет необходимости.