$ _file.Name.txt переместить $ _folder.Name, если $ filename соответствует $ foldername - PullRequest
0 голосов

Мне нужно получить список файлов * .jpg, содержащихся в следующих подпапках: F:\189\recieved\toM_Ich, с папкой:

F:\189\recieved\toM_Ich\toM_Ich.txt

Я решаю первую половину задачи, используя этот скрипт:

$folders = Get-ChildItem F:\189\recieved -Directory *_*

foreach ($folder in $folders) {

    $files = Get-ChildItem $folder -name -Include *.jpg | out-file $_$folder.txt
}

Текстовые файлы перечислены правильно и содержат папки, но файлы в F:\189\recieved находятся не в папке, как описано.

Я пробовал таким образом, но он возвращает ошибки:

Set-Location F:\189\recieved\
$folders = Get-ChildItem -Directory *_*

foreach ($folder in $folders) {

    $files = Get-ChildItem $folder -name -Include *.jpg | out-file $_$folder.txt

}

$ParentDir = Get-ChildItem F:\189\recieved\ | Where-Object {$_.PSIsContainer -eq $True}

ForEach ($SubDir in $ParentDir) {

    $SubDirName = $SubDir.Name

     ForEach ($File in $(Get-ChildItem $SubDir.FullName)) {

        If ($File.Name -match $SubDir.FullName) {

          Move-Item $File.Name $SubDirName
        }
    }
}

Как мне решить эту проблему?

ОБНОВЛЕНО:

ОШИБКА ЖУРНАЛА ТЕРМИНАЛОВ


выполняется разбор "F: \ 189 \ recceive \ maN_Enl"- Нераспознанная esc-последовательность \ m.строка: 18 знак: 13 + If ($ File.Name -match $ SubDir.FullName) {+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: OperationStopped: (:) [], ArgumentException + FullyQualifiedErrorId: System.ArgumentException


И его блок повторяется миллиард раз для всех подпапок (я отметил его BOLD ) Я хотел добавить скриншоты, но у меня нет на это прав.

...