2016-07-22 1 views
0

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

Например, у меня есть заголовок и нижний колонтитул с символами 0*5 в этом точном порядке. Я хочу полностью удалить верхние и нижние колонтитулы из своих файлов в определенной папке без изменения имени файла. Я нашел и попробовал разорвать Get-Content myFile.txt и Set-Content newFile.txt.

Мои файлы находятся в папке, поэтому я вызываю их из «*». У всех есть разные имена. Я пытаюсь удалить все верхние и нижние колонтитулы за один проход через PowerShell.

ответ

0

Я не поклонник потери оригиналов, поэтому я использую длинный метод:

$ListofFiles = Get-ChildItem c:\windows\logs\* -include *.txt 

ForEach ($item in $ListOfFiles){ 
    $FileContent = Get-Content "$item.txt" 
    Rename-Item -path "c:\windows\logs\$item.txt" -newname "$item.old" 
    ForEach ($line in $FileContent) { 
     If ($Line -like "*whatever i am looking for*") { 
      Write-host "Found the entry i was looking for" 
     } 
     else { 
      $Line | Out-File "c:\windows\logs\$item.txt" 
     } 
    } 
} 
+0

У Вас есть ошибка в '$ item' строк - одиночные кавычки строки не интерполировать переменные, так что вы всегда будете читать и писать '$ item.txt' как литеральное имя файла, а не переменную цикла content.txt – TessellatingHeckler

+0

Спасибо, что указали, что из .... когда я вставил его, где все двойные кавычки .... –