PowerShellで
・テキストファイルをソート
できます!
コード
ここでは例として
・デスクトップ配下のテキストファイル「sample.txt」をソート
します。
# 対象ファイル
$targetFile = "C:\Users\user\Desktop\sample.txt"
$ws = New-Object -ComObject Wscript.Shell
try
{
# 昇順でソート
(Get-Content $targetFile -ErrorAction Stop) | Sort-Object | Out-File -Encoding default $targetFile
# 降順でソート
# (Get-Content $targetFile -ErrorAction Stop) | Sort-Object -Descending | Out-File -Encoding default $targetFile
$ws.popup("ソートに成功しました。")
}
catch
{
$ws.popup("エラー : " + $PSItem)
}
実行結果
テキストファイルをソートできました。
参考①
「見出し(最初の1行)」をソートの対象外にすることもできます。
# 対象ファイル
$targetFile = "C:\Users\user\Desktop\sample.txt"
$ws = New-Object -ComObject Wscript.Shell
try
{
# 見出し(最初の1行)を取得
$headLine = (Get-Content $targetFile -ErrorAction Stop) | Select-Object -First 1
# 見出し以外を取得して、昇順でソートされた内容を取得
$contents = (Get-Content $targetFile -ErrorAction Stop) | Select-Object -Skip 1 | Sort-Object
# 元のファイルに見出しを出力
Write-Output $headLine | Out-File -Encoding default $targetFile
# 元のファイルに見出し以外をの昇順でソートされた内容を出力
Write-Output $contents | Out-File -Encoding default $targetFile -Append
$ws.popup("ソートに成功しました。")
}
catch
{
$ws.popup("エラー : " + $PSItem)
}
参考②
上記のコードで使用した以下の詳細は、公式サイトをご確認ください。
●コマンドレット「Get-Content」
●「Sort-Object」コマンドレット
●「Out-File」コマンドレット