LoginSignup
0
0

More than 1 year has passed since last update.

PowerShellでファイル内容を連結して出力する

Posted at

Windowsで複数のファイルを統合したいことがあり、せっかくなのでPowerShellを使った。普通にPowerShellを使うと、基本ShiftJISだったので、PowerShell7を使った。

書いたスクリプト

test.ps1
# 文字列をファイルに出力
function WriteToFile($str) {
    # ファイル先頭の改行を削除
    $str = $str -replace "^\r\n", ""
    # 改行の繰り返しを削除
    $str = $str.Replace("`r`n`r`n", "`r`n")
    $str = $str.Replace("`r`n`r`n", "`r`n")
    # ファイルに出力
    $str | Out-File -FilePath hoge.txt -Append
}

# ファイルの内容を取得して関数に渡す
$content = (Get-Content "C:\tmp\archive1.txt" -ReadCount 0) -join "`r`n"
WriteToFile($content)
$content = (Get-Content "C:\tmp\archive2.txt" -ReadCount 0) -join "`r`n"
WriteToFile($content)
$content = (Get-Content "C:\tmp\archive3.txt" -ReadCount 0) -join "`r`n"
WriteToFile($content)

概要:C:\tmp\archive1.txt~C:\tmp\archive3.txtの内容を読み込んで、現在のディレクトリのhoge.txtに書き込む。

    # ファイル先頭の改行を削除
    $str = $str -replace "^\r\n", ""
    # 改行の繰り返しを削除
    $str = $str.Replace("`r`n`r`n", "`r`n")

ファイル先頭に改行があったり、空白行が多かったりしたので調整している。

(Get-Content "C:\tmp\archive1.txt" -ReadCount 0) -join "`r`n"

取得したファイル内容の改行コードをCRLFにする。(1行ずつ配列にして\r\nでJOINしている)

スクリプトの実行

スクリプトを「**.ps1」というファイル名で保存し、PowerShellプロンプトからファイルを実行する。
PowerShell上からスクリプトを実行する

PowerShell7のインストール

以下より環境にあったものをインストールする。
Windows への PowerShell のインストール

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0