【バッチファイル】テキストファイルをソートする

バッチファイルで
 ・テキストファイルをソート
できます!

バッチファイルから
 ・Power Shellのコマンドレットを実行
することで実現します!

PR

コード

ここでは例として
 ・デスクトップ配下のテキストファイル「sample.txt」をソート
します。

テキストファイル「sample.txt」
テキストファイル「sample.txt」
テキストファイル「sample.txt」の内容(ソートされていない)
テキストファイル「sample.txt」の内容(ソートされていない)
@echo off

rem 対象ファイル
set targetFile=C:\Users\user\Desktop\sample.txt

rem PowerShellのコマンドレットを組み立て(昇順でソート)
set psCommand="(Get-Content %targetFile%) | Sort-Object | Out-File -Encoding default %targetFile%"
rem PowerShellのコマンドレットを組み立て(降順でソート)
rem set psCommand="(Get-Content %targetFile%) | Sort-Object -Descending | Out-File -Encoding default %targetFile%"

rem PowerShellのコマンドレットを実行
powershell -NoProfile -ExecutionPolicy Unrestricted %psCommand%

rem 実行結果を確認
if %errorlevel% == 0 (
	echo 正常終了しました。戻り値:%errorlevel%
) else (
	echo 異常終了しました。戻り値:%errorlevel%
)

echo.

pause
exit

対象ファイルを指定します(4行目)。

実行するPower Shellのコマンドレットを組み立てます(7行目)。
※以下のコマンドレッによりソートをします。
 Get-Content・・・対象ファイルの内容を取得します。
 Sort-Object・・・ソートします。 ※「-Descending」を付けると降順になります。
 Out-File・・・・ファイルへ出力します。
 ※文字化けしないように「-Encoding default」を付けます。

コマンドプロンプトの「sort」コマンドでもソートできますが、バッチファイル内で実行すると上手く動きません。
※上手く動く方法を見つけることができませんでした。

PR

実行結果

テキストファイルをソートできました。

実行結果①
実行結果①
実行結果②
実行結果②
PR

参考①

上記のコードは以下の記事を参考にして作成しました。

PR

参考②

上記で使用した以下の詳細は、公式サイトをご確認ください。

●「Get-Content」コマンドレット


●「Sort-Object」コマンドレット


●「Out-File」コマンドレット