2016-07-23 5 views
0

Я пытаюсь переместить кучу файлов в дочерних каталогах в родительский каталог. Я проверил, что индивидуальный поиск работает и что мои конкатенации верны. Однако Move-Item ничего не делает.Move-Item не перемещает файлы

Я не могу понять, почему.

Get-ChildItem $pwd -name -recurse *.docx | foreach{ Move-Item (Join-Path . $_) .} 

Любая помощь будет принята с благодарностью.

Спасибо.

Редактировать: Обновлено с решением, специфичным для моей проблемы, основанным на объяснении/ответе Дж. Дрекслера.

Get-ChildItem $pwd -name -recurse *.docx | Move-Item -Destination . 
+1

Добавить '-whatif' или' -verbose' вашу команду Move-Item, чтобы увидеть, что происходит на. –

+0

'Move-Item $ _. FullName. \' –

+0

@ Mathias R. Jessen: выход Get-ChildItem является строкой. Таким образом, $ _. FullName не будет работать. – abjbhat

ответ

1

Это делается так:

Get-ChildItem $path -Filter "*.docx" | move-item -Destination (split-path $path -Parent) 

Примечание: Вам не нужно "Еогеасп" после "|". Если вы используете "|" после листинга-команды, его же, как:

$items = GetList $path 
foreach($item in $items){ DoSomething $item } 

это так же, как:

GetList $path | DoSomething 
+0

Спасибо! Итак, аргумент 1 - это каждый элемент результата выражения слева. Понял. – abjbhat

Смежные вопросы