Перемещение текущих объектов (для меня, папок) в родительский каталог их с помощью PowerShell - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь найти в папках на общем диске подпапки с "* OutPuts" в имени.В этих папках должны быть папки , но в не должно быть файлов :

select fullname,@{N='SubDirectories';E={[boolean]($_ |
get-childitem -directory).count}},@{N='SubFiles';E={[boolean]($_ |
get-childitem -file).count}}

Когда эти папки найдены, я хочу переместить любые папки из выходной папки вПапка проекта (Родитель своего Родителя).Пример:

Начальное условие: C: \ AllProjects \ Projectfolder \ output \ SubProjectFolder

Требуемый результат: C: \ AllProjects \ Projectfolder \ SubProjectFolder

Вот полный код:


код несколько переформатирован для удобства чтения ...

$folders=Get-ChildItem C:\AllProjects -recurse -Directory |
    where {$_.name -like "*Outputs"} |
    select fullname,
        @{N='SubDirectories';E={[boolean]($_ |
            get-childitem -directory).count}},
        @{N='SubFiles';E={[boolean]($_ |
            get-childitem -file).count}}

$folders

$folders |
    where {$_.subdirectories -eq $true -and $_.subFile -eq $False} |
    foreach {
        get-childitem |
        Move-Item $_ -destination $_.parent.parent}

Когда я запускаю код, появляется следующее сообщение:

cmdlet Move-Item at command pipeline position 1
Supply values for the following parameters:
Path[0]:

Я довольно новичок в PowerShell, так что если кто-то может помочь мне разобраться с этим и сказать, что я должен поставитьздесь это будет высоко ценится.Спасибо за ваше время.

ОБНОВЛЕНИЕ

* Я пробовал это с

-Path $_, -Path $_.PsPath, -Path $_.FullName. 

У меня естьдаже пробовал Get-Item.С -Path, хотя теперь я получаю сообщение, которое немного отличается:

cmdlet ForEach-Object at command pipeline position 2 Supply values for the following parameters: Process[0]:
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...