2.スクリプト本体
#以下の内容をコピペ貼り付け(先頭の#があるならここも貼り付けて大丈夫)
#変更可能範囲ここから---------------------------------------------
#出力ファイルフルパス
$otptPth="出力する先のフォルダパス\出力したいファイル名.txt"
#もとにするバックアップファイルディレクトリパス
$inptFldr="解凍後バックアップディレクトリパス"
#章区切り
#ダブルクォーテーションの間を好きな文字列に書き換えてね
$chptDlmt="------------------------------------"
#章タイトルフラグ
#1だったら章タイトルを出す。出したくなければ0にしてね
$chptFlg=1
#見出しフラグ
#1だったら見出しを出す。出したくなければ0にしてね
$sctnFlg=1
#出力用
#大見出し(:の後ろに見出し名がつく)
$bSct="大見出し:"
#小見出し(:の後ろに見出し名がつく)
$sSct="小見出し:"
#タイトル(:の後ろに見出し名がつく)
$ttlStr="タイトル:"
#改行(これを変更する場合はこれが何意味してるかわかってること!)
$brk="`r`n"
#変更可能範囲ここまで---------------------------------------------
#aboutパス作成
$abtpth=$inptFldr + "\" + "about.txt"
#目次配列初期化
$sctnArr=@();
#目次配列用カウンタ初期化
$sctnCnt=0;
#正規表現作っとく
$bSctRgx='^§ '
$sSctRgx='^ § '
$ttlRgx='^( )*[0-9]+\. '
$mkjRgx='^【目次】'
$cntntRgx='^【本文([0-9]+行)】'
$rpRgx = '^(§ | § |( )*[0-9]+\. )'
#見出しフラグが1なら
if($sctnFlg -eq 1){
#見出しと章タイトルを配列に格納していく
#目次行検索
$mkjnmbr= Get-Content $abtpth -Encoding utf8 | select-string $mkjRgx -Encoding utf8
#ファイルの最大行数取得(配列扱いにせにゃならんので-1)
$rowcnt=((Get-Content -Path $abtpth).Length - 1)
#aboutの目次部分まとめて目次配列に格納
$sctnArr=(Get-Content -Encoding UTF8 $abtpth)[$mkjnmbr.LineNumber..$rowcnt]
}
#出力用ファイル事前作成
New-Item $otptPth -type file
# バックアップファイルフォルダ内のファイルを取得する(ファイル名順)
$itemList = Get-ChildItem ($inptFldr + "\" + "episode*") | Sort-Object { $_.Name }
#取得したファイルリスト($itemList)をループで1件ずつ処理
foreach($item in $itemList){
#タイトル取得
$titleName=(Get-Content -Path $item.FullName -Encoding utf8)[1..1]
#見出しチェック
if($sctnFlg -eq 1){
#取得したタイトル名と目次配列の値(タイトル置換)が一致していなければ見出し出力処理
if(($sctnArr[$sctnCnt] -replace $ttlRgx) -ne $titleName){
#一致してない間ループ
while(($sctnArr[$sctnCnt] -replace $rpRgx) -ne $titleName){
#大見出しかチェック(正規表現で判定)
if($sctnArr[$sctnCnt] -match $bSctRgx){
#大見出しの出力実行(正規表現で不要部分を置換)
Write-Output ($bSct+($sctnArr[$sctnCnt] -replace $rpRgx)) | Add-content -Path $otptPth -Encoding utf8
#目次配列のカウンタ+1
$sctnCnt=$sctnCnt+1
continue
}
#小見出しかチェック(正規表現で判定)
if($sctnArr[$sctnCnt] -match $sSctRgx){
#小見出しの出力実行(正規表現で不要部分を置換)
Write-Output ($sSct+($sctnArr[$sctnCnt] -replace $rpRgx)) | Add-content -Path $otptPth -Encoding utf8
#目次配列のカウンタ+1
$sctnCnt=$sctnCnt+1
continue
}
#目次配列のカウンタ+1
$sctnCnt=$sctnCnt+1
}
}
}
if($chptFlg -eq 1){
Write-Output ($ttlStr+$titleName) | Add-content -Path $otptPth -Encoding utf8
}
Write-Output $brk | Add-content -Path $otptPth -Encoding utf8
#取得開始位置ゲット
$lnnmbr= Get-Content $item.FullName -Encoding utf8 | select-string $cntntRgx -Encoding utf8
#ファイルの最大行数取得
$rowcnt=((Get-Content -Path $item.FullName).Length - 1)
#内容取得
$content=(Get-Content -Path $item.FullName -Encoding utf8)[$lnnmbr.LineNumber..$rowcnt]
#本文部分を出力。文字コードはUTF8
Write-Output $content | Add-Content -Path $otptPth -Encoding utf8
#章区切り出力
Write-Output $brk+$chptDlmt+$brk | Add-content -Path $otptPth -Encoding utf8
}
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます