Я пытаюсь найти в папках на общем диске подпапки с "* 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]: