エンピツ日記からの移行(Ver0.1)

コマンドプロンプトでの作成と公開を目指していたが、
文字列処理などがやりにくいのでPowerShellにしました。
とりあえず最低限のレベルに達したと思うので公開。

形式としてはスクリプトファイルと同階層にバッチを配置してバッチから叩く形式。
Enpitsu_dataというフォルダ内に月ごとにエクスポートしたデータを配置

バッチファイル

@echo off
setlocal enabledelayedexpansion
cd %~dp0
powershell -ExecutionPolicy RemoteSigned -File script.ps1


PowerShell
スクリプト内のYYYYDDは任意で書き換え

# 実行中のパス取得/移動
$path = Split-Path -Parent $MyInvocation.MyCommand.Path
Set-Location $path
# ファイル読み込み
# StreamReaderのコンストラクタに直接 「$path + "\test.txt"」を入力するとエラーになるので分ける
$fileName = $path + "\Enpitsu_data\diaryYYYYDD.txt"
$Export_Data = gc $fileName
$Export_Data_FileName = $path + "\Enpitsu_Export.txt"
#記事開始個所
$start = sls "\+\+\+" $fileName | ForEach-Object { $($_ -split":")[2]}
#記事終了箇所
$end = sls "----" $fileName| ForEach-Object { $($_ -split":")[2]}
#ループ開始
for ( $i = 0; $i -lt $start.Length ; $i++ ){
$Change_Data = "TITLE:" + ($Export_Data)[($start[$i]-2)] + "`r`n"
$Change_Data += "STATUS: Draft" + "`r`n" + "CONVERT BREAKS: 1" + "`r`n" + "PRIMARY CATEGORY: 日記(非公開)" + "`r`n"
$Year = ($Export_Data)[$start[$i]-3].Substring(0,4)
$Month = ($Export_Data)[$start[$i]-3].Substring(4,2)
$Day = ($Export_Data)[$start[$i]-3].Substring(6,2)
$Change_Data += "DATE: " + $Month + "/" + $Day + "/" + $Year + " 00:00:00 PM" + "`r`n"
$Change_Data += "-----" + "`r`n" + "BODY:" + "`r`n"
$tempData = ($Export_Data)[$start[$i]..($end[$i]-2)]
$tempData = $tempData -join "`r`n"
$Change_Data += $tempData
$Change_Data += "`r`n" + "--------"
Write-Output $Change_Data | Out-File -FilePath $Export_Data_FileName -Encoding Default -append
}
# 終了
Write-Host("終了")

次はフォルダ内のすべてのテキストファイルを変換したり体裁を整える予定