2013-07-15 7 views
0

Не могу поверить, что это так сложно, как я его нахожу.файл обновления powershell во вложенных папках, если он уже существует

У меня есть папка на общем ресурсе сервера. В этой папке есть несколько подпапок, которые могут содержать или не содержать файл, который я хочу переписать с помощью последней версии.

Я сделал много поиск Google & полагал, что команда ниже будет получить меня, что я хочу:

Get-ChildItem \\server1\websites\website\xml -Name "description-15240.txt" -Recurse | Copy-Item ".\description-15240.txt" -Destination $_.fullname 

... но это не так.

Итак, я нарушу команду на часть & найти Get-ChildItem возвращает только путь к файлу от корня из -Name параметра т.е.

1 \ бесконечен \ Описание 15240.txt 68 \ бесконечен \ описание 15240.txt 79 \ бесконечен \ описание 15240.txt 80 \ бесконечен \ описание 15240.txt

вместо \ server1 \ сайтов \ сайт \ XML \ 1 \ бесконечен \ описание 15240.txt это то, что мне нужно.

Проблема: Я не могу получить Get-ChildItem, чтобы вернуть полный путь | { $_.FullName } не делает этого ни делает | { $_.Parent }

Может кто-то помочь & possiblly сказать мне, если Copy-Item, скорее всего, к работе также?

Большое спасибо, N

ответ

0

Name параметр только фильтровать имя файла, если вы хотите полный путь использования файла include параметра.

Get-ChildItem \\server1\websites\website\xml -include "description-15240.txt" -Recurse | % { Copy-Item ".\description-15240.txt" -Destination $_.fullname } 
+0

Это исправлено, спасибо. – ninety

0

попробовать

gci \\server1\websites\website\xml -Name "description-15240.txt" -recurse |%{ convert-path $_.pspath} 
+0

Это правильно? Я получаю 'Convert-Path: не могу связать аргумент с параметром 'Path', потому что это ошибка null, когда я его пытаюсь. – ninety