Список Powershell соответствует только части имени файла - PullRequest
0 голосов
/ 14 июля 2020

У меня есть одна папка, заполненная PDF-файлами, все их имена содержат номер Pxxx-xx.

Примеры:

"P418-04 hingeblock.pdf"
"P293-21 corner profile.pdf"
"P810-18 bench support.pdf
"R5511-01 coat hook.pdf"

Я хочу создать структуру папок на основе этих чисел и поместите каждый файл в его собственную папку.

Я понял, как создавать папки, используя образец структуры папок, когда у меня есть совпадения:

$ItemNames | ForEach-Object{
    Get-ChildItem -Path ("$TargetPath\000 Sample Folder") | Copy-Item -Destination ("$TargetPath\$_") -Recurse -Container 

Я дошел до выбора files:

Get-Item -Path ("$SourcePath") | ls | where Name -match '[PR]\d?\d\d\d-?\d?\d?'

Только, как мне сделать так, чтобы в нем отображалась ТОЛЬКО соответствующая часть имени файла, а не весь путь к файлу?

«Get-Item» всегда показывает список sa со столбцами » mode "," lastwritetime "и" name "и выводит полное расположение файла.

Мне нужен только простой список:

P418-04
P293-21
P810-18
R5511-01

Поэтому я могу использовать этот список для создания имен папок .

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете попробовать этот код:

$prefixes = Get-ChildItem "Filepath" -Directory | Foreach {$_.Name.ToString().Split(" ")[0]}

Теперь $prefixes будет содержать эти начальные совпадения с шаблоном.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...