Организовать файлы в клиентских папках - PullRequest
0 голосов
/ 13 февраля 2020

У меня тонны клиентских файлов (документов PDF или Word) в одной папке. Я хотел бы расположить их в отдельных папках для каждого клиента.

Файлы названы так: 322123 SF Michael Jackson 3 Shirts Finished

Папка назначения должна быть: Jackson, Michael (LastName, FirstName)

Если папка назначения не существует, тогда ее нужно создать.

Вот мой код до сих пор,

$FileList = Get-ChildItem -Path "C:\Users\acct\Test"
foreach ($File in $FileList) {
$File.Name -match '([0-9]+?)\s([A-Z]+)\s(?<First>\w+)\s(?<Last>\w+)\s(\w.*)';
if ($matches) {
    $Destination = 'C:\Users\acct\Test\Client Files\{4}, {3}' -f , $matches.First, $matches.Last;
    mkdir -Path (Split-Path -Path $Destination -Parent) -ErrorAction SilentlyContinue;
    Move-Item -Path $File.FullName -Destination $Destination -WhatIf;
}
$matches = $null
}

Я получаю ошибку при сопоставлении пути для места назначения.

Может ли кто-нибудь помочь мне организовать это с помощью скрипта PowerShell?

1 Ответ

0 голосов
/ 18 марта 2020

Это работало несколько недель go, поэтому я просто публикую его как ответ, который будет принят.

$files = (gci "c:\folderwherefilesare\*" -include ("*.doc*","*.pdf")) 
foreach($File in $files){ 
    $b = $File.name.split('[ ]')[3] + ", " + $Files.name.split('[ ]')[2] 
    New-Item -Path "c:\folderwherefilesare\" -Name $b -ItemType "directory" 
    $dir = "c:\folderwherefilesare\" + $b
    move-item $File $dir
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...