Jadi saya memiliki beberapa file teks besar yang perlu saya sortir, dan menghapus semua kemunculan baris yang berisi kata kunci tertentu. Jadi pada dasarnya, jika saya memiliki garis-garis ini:
Ini bukan ujian.
Ini ujian.
Mungkin ujian.
Bukan ujian
Dan saya menjalankan skrip dengan 'tidak', saya harus menghapus seluruh baris 1 dan 4.
Saya sudah mencoba dengan:
PS C:\Users\Admin> (Get-Content "D:\Logs\co2.txt") |
Foreach-Object {$_ -replace "3*Program*", ""} |
Set-Content "D:\Logs\co2.txt"
tetapi itu hanya menggantikan 'Program' dan bukan seluruh baris.
windows-7
powershell
script
karel
sumber
sumber
Set-Content
? Saya tidak percaya ituSet-Content
adalah pengganti drop-in untukOut-File
.Get-Content .\in.txt | Where-Object {$_ -notmatch 'not'} | Set-Content out.txt
Out-File pada dasarnya adalah Set-Content, tetapi menjalankan input melalui format default alih-alih konversi string sederhana.Ini akan bekerja:
sumber
Anda juga bisa menggunakan 'Select-String' dengan opsi -notmatch:
sumber
Saya hanya perlu menjalankan ini dan membuat yang berikut:
Kuncinya adalah bahwa 'Tempat-Objek' menggunakan blok skrip (seperti yang ditunjukkan oleh kurung kurawal) mengharuskan mendeklarasikan variabel dalam acara pembuatan blok skrip, karenanya
baris.
Dengan menyusunnya dengan cara ini, seseorang dapat membuat fungsi, meneruskannya string teks untuk mencocokkan sebagian, melakukan pembuatan blok skrip dengan nilai yang diteruskan, dan membuatnya berfungsi dengan benar.
Jawaban di atas tidak menjelaskan dengan benar cara meneruskan nilai yang akan diganti dalam suatu variabel.
sumber