特定の文字列を含む行を削除する PowerShell
Microsoft Windows [Version 10] で確認。
LineExclusion.ps1
#===================#
# LineExclusion.ps1 #
#===================#
### 対象PATH ###
$path = "C:\Users\Desktop\test\json"
### Grep対象の文字列 ###
$str = """DELETE_FLG"":1"
### ファイル一覧取得 ###
$childItems = Get-ChildItem -Path $path | Select-String -Pattern $str | % { $_.Path }
foreach($item in $childItems)
{
### ファイル名の定義 ###
$itemtmp = $item + ".tmp"
$itemold = $item + ".old"
### 該当行を削除 ###
sls -NotMatch $str $item | %{$_.Line} > $itemtmp
echo "処理中:$item"
### ファイル名の操作 ###
Rename-Item -Path $item -NewName $itemold
Rename-Item -Path $itemtmp -NewName $item
}
ファイルから「"DELETE_FLG":1」を含む行を削除する PowerShell Program を作成しました。フォルダ一括で処理します。