2015-09-10 1 views
1

Я пытаюсь найти все файлы .aspx в каталоге и всех его дочерних папках, чтобы добавить тег под тегом <head>. Родительские каталоги могут содержать .aspx файлов в них, а также дочерние папки.PowerShell - Использование -Recurse и -Filter для добавления ко всем файлам в каталоге

Других слов, я хочу, чтобы выбрать все .aspx файлов внутри этого каталога, а также все .aspx файлов в своих дочерних папках, ВСЕ .aspx файлов в детях этих детей и т.д. Я использую следующий код PowerShell фрагмент коду для сделать так:

$files = Get-ChildItem -Path C:\Users\apgdy\Downloads\test_proj -recurse -filter "*.aspx"

Когда я бегу, что в консоли PowerShell и отображать содержимое $files, я получаю все файлы, которые я ожидаю, отображаемых в экранном буфере. Однако, когда я пытаюсь добавить текст в файл, используя следующий код, я получаю сообщение об ошибке:

Код:

$textIsAddedAfter = "<head>" 
$textToAdd = " <sometag>" 

ForEach ($file in $files) { 
(Get-Content $file) | 
Foreach-Object { 
    $_ 
    if($_ -match $textIsAddedAfter) { 
     $textToAdd 
    } 
} | 
Set-Content $file 
} 

Ошибка:

Get-Content : cannot find path 'C:\users\apgdy\test.aspx' because it does not exist. 
At line:2 char:17 
+  <Get-Content <<<< $file> | 
    + CategoryInfo   : ObjectNotFound: <C:\Users\apgdy\test2.aspx:String 
    > [Get-Content], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetCo 
ntentCommand 

я один из тех, для каждого файл, который он находит в $files Что странно в том, что в коде я сказал консоли, что файлы существуют в "C:\users\apgdy\Downloads\test_proj" и его дочерних, а не "C:\users\apgdy". Почему он опустил "\Downloads\test_proj" из каталога, в котором я сказал, чтобы искать файлы?

Заранее благодарен!

ответ

2

Когда вы вызываете Get-Content, он не использует полный путь к файлу. Изменение от:

Get-Content $file 

To:

Get-Content $file.FullName 

Или:

$file | Get-Content 
+0

Awesome! Я использовал свойство .Fullname в get-content и set-content, и он работал отлично. Благодаря тонну! –

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