Powershell - zamiana tekstu w wielu plikach

Odpowiedz Nowy wątek
2019-04-16 09:04
0

Witam,
niestety nie potrafię sobie sam poradzić z problemem w Powershell'u
Chodzi mi o to, że mam do zmiany z ~200 plików, w których 1 linijka tekstu musi zostać zmieniona na inną
Chodzi o to by zmienić wszystkie pliki o rozszerzeniu *.project
i zmienić im wartość z np. "aaa" na "bbb"

Próbowałem coś z Get-Content oraz -replace
ale to mi działało tylko jak odnosiłem się konkretnie do pełnej ścieżki i nazwy pliku, jak chciałem skorzystać z *.project to dodawało treści do siebie :(

Bardzo proszę o pomoc
Pozdrawiam

Pozostało 580 znaków

2019-04-16 11:45
1

Czy to musi być Powershell?
Znaczy się, czy potrzebujesz zrobić to raz czy potrzebujesz zrobić skrypt, do reguarnego używania?

Jeśli raz, może wystarczy: Notepad++

  • Szukaj / Szukaj w plikach... [zakładka: Zamień w plikach].

A do zamiany nazw plików: Total Commander

  • Plik / Narzędzie wielokrotnej zamiany... (CTRL + T).

edytowany 2x, ostatnio: Freja Draco, 2019-04-16 11:46

Pozostało 580 znaków

2019-04-16 11:49
1

Udało mi się już ogarnąć temat:

$search = '*.testinit'
$replace_with = 'TestInitProgram=.\TestInitializationPrograms\xyz_CheckListTestInitializationProgram.testinit'
$base_dir = 'E:\Projects'
$text_file_ext = 'project'

Get-ChildItem $basedir -Recurse -Include "xyz*.$text_fileext" |
ForEach-Object { (Get-Content $
.FullName) |
ForEach-Object {$_ -replace $search, $replacewith} |
Set-Content $
.FullName }

Taka forma się sprawdziła.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0