iTunesからMusicBeeへの乗り換え その3くらい(まとめ) [IT]
iTunesからMusicBeeに乗り換えたので、Android端末と同期するためのiSyncrと、Google Play Music(長いので以下GPM)のMusicManager(長いので以下GPMMM)のiTunesプレイリスト同期機能が使えなくなってしまったので、これを解決すべくWSL(Windows Subsystem for Linux)を利用して以下のスクリプトを作った。のでまとめ。
MusicBeeの独自プレイリスト形式であるmbpというバイナリファイルがある。これはバイナリファイルだがテキストが埋め込まれているので、強引にテキストファイルとして読み込んでm3uプレイリスト形式に変換する。
1.で作成したm3uプレイリストを、Android(Linux)用にパスの区切り文字を「\」から「/」にして、プレイリストが格納されているフォルダから相対パスで指定したUTF-8 改行コードLFのm3uファイルを作成する。
ffprobe(ffmpeg付属)で音楽ファイルのタグ(メタデータ)を抽出してGPM用のプレイリストcsv形式1行で出力する。
mp3ファイルの場合、ffprobeで日本語文字化けが起こる(標準出力に出力されたときにはすでに壊れて修復不可能)ので、PythonのeyeD3というライブラリを使用して、mp3のメタデータの文字コードを変換してからメタデータをGPM用のプレイリストcsv形式1行で出力する。(ここで公開されている"id3conv.py"を改造)
3.と4.を使用して、m3uプレイリストに書かれている音楽ファイルのタグ(メタデータ)を抽出してGPM用のプレイリストcsvファイルに変換する。
6.gmusic-playlist/common.py, gmusic-playlist/preference.py
gmusicapi(Google Play Music非公式api )を使用してGPM用プレイリストcsvファイルをアップロード・ダウンロードできるgmusic-playlistというツールがあるのだが、これが1つのcsvファイルをアップするたびにパスワードを聞いてくるのでoauthで認証するように改造。
5.で生成するGPM用csvプレイリストのメタデータのフィールド(カラム)を多くしているのでその部分も変更している。GPMに渡すメタデータが多いほど正確にGPM上でプレイリストが生成されるため。
rsyncを使用し、2.で作成したプレイリストに書いてある音楽ファイルだけをSRCフォルダからDSTフォルダにコピーする。書いていないファイルは削除する。sshとファイル名にあるように、sshで暗号化してrsyncサーバーとの通信が可能。
1.2.7.がNASとAndroid端末と同期するためのスクリプトで、3.-6.がGoogle Play Musicのプレイリストを同期するためのスクリプトである。
Android端末では/Playlistフォルダにプレイリストが、/Musicフォルダ以下に音楽ファイルが格納されているとすると、m3uファイルは
../Music/アーティスト名/…1.flac
../Music/アーティスト名/…2.flac
という書式にする必要がある。そういう書式にするために2.を使う。2.で作成したプレイリストファイルを使って7.でAndroid端末に転送するのだが、単純にファイルのリストを渡しただけではコピーはできない。いや、コピーはできるのだが、指定していないファイルを削除することができず、ゴミファイルが溜まっていく。それを回避するためには、rsyncの--include-fromオプションで残すファイルを指定する必要がある。
その書式が
/foo/bar/hoge.piyoというファイルを残すのであれば、
/foo/
/foo/bar/
/foo/bar/hoge.piyo
とファイルの途中のパスを全部書き出さないとならないので7.のスクリプトでそういった処理をしている。
GPM用のプレイリストの処理だが、困ったことに4.はPython3でしか動かないし、6.はPython2でしか動かない。それで最初はpyenvという環境切り替えツールを使用して6.のフォルダで使用するPythonのバージョンを"$ pyenv local 2.x.x"でPython2に指定して、5.内でもpyenvを使用してPython3に切り替えて4.を呼び出していた。
WSLのLinux内で動かす分にはそれでよかったのだが、WindowsのGUIで指定したファイルをバッチファイルにドラッグアンドドロップして変換したいので、バッチファイル(コマンドプロンプト)のwslコマンドでWindowsから呼び出そうとすると、python(及びpyenv)なんてコマンドはねえよと返される。
Pythonをaptでインストールしたときは問題ないので、pyenvが問題(多分環境変数の問題。WSLのターミナルを起動してログインした時とwslコマンドで呼び出した時ではおそらく読み込まれる設定ファイルが違う)ということでpyenvの使用は諦めて、4.と6.を実行する際にchmodで実行権限を与えて"$ ./bar.py"の様に実行するのではなく、"$ python3 bar.py"などとpyスクリプトで使用したいバージョンでPython自体のコマンドを変えて実行することで解決した。
こちらのほうがよほどシンプルだが、pythonの共存と切り替えはpyenvが便利だよというネットの情報にはまり込んでしまった。Linux内だけで使用するならそうなんだろうけど、WLSを通して使うということの情報が見当たらなかったからだな。
こうして作成した1.2.5.6.をWinsdowsのバッチファイル中のwslコマンドで呼び出すことで、MusicBeeのプレイリストをいじったときに、バッチファイルをダブルクリックだったりプレイリストファイルをドラッグアンドドロップするだけで、Android端末用のプレイリストの作製とGPM用プレイリストcsvの作製およびGPMへのアップができるようになった。
5.で作ったGPM用プレイリストcsvは6.を使うよりこの野良Chromeアドオンでアップロードするのが楽じゃないかな。
余談
WSL用ユーティリティのwsluにWindows形式とLinux形式のパスの文字列を変換するwslpathというコマンドがある(ここや ここらへん参照)のだが、なるべくWSL依存にはしたくなかったのでWindows形式のパスはsedを用いてLinux形式のパスに変換するようにしている。なので、素のLinux(wsluが無いLinux)で音楽ファイルとプレイリストm3uファイルを管理している場合でも1.-7.は動くはずである(試してないので「はず」止まりだが)。
Windowsでは全角チルダは波ダッシュに置換されてしまうが、Linuxでは区別されるので問題が生じることがあった。
gmusic-playlist/ImportList.py に改造の余地があるな。csvファイル1つごとにGPMにログインログアウトするので時間がかかる。ログインしてから一気に複数のプレイリストをアップしたほうが高速になる。
まあ動くから、モチベが低い。
google-music-scripsはどういうわけかアップロードできないバグが有る。そこでgmusicapiを使用してアップロードするpy(音楽アップロード用、プレイリストcsvアップロード用)を書いた。(これを改造)
BOOX NOTEの分解 [IT]
E InkのAndroid読書端末「BOOX NOTE」はストレージが32GBあるが、そのうちユーザーが使えるのが27GB弱で、執筆時点で電子書籍ストアから書籍を買ったところ書籍がダウンロードできず、使い切ってしまったのがわかった。
一応USB Type-C端子が付いているが、それにストレージを接続することができない(ここはよく調べてないのでもしかしたらできるかもしれない)。SDカードスロットも無いのでストレージの拡張ができないのだ。
もしかしたら、内部的にSDカードのスロットがあって、そこにストレージが挿さっているのかもしれない、と思って、以前スマホを修理する際に購入した、手持ちのスマホリペアキットの特殊ドライバーとヘラを使って分解してみた。(読者の方はご自身の責任の下、行ってください)
底面のUSB Type-C端子の左右にネジがある。
これが五芒星の形をした特殊なもので、前述のリペアキットのドライバーで外す。本体の裏面のカバーは接着剤などで接着はされておらず嵌っているだけなので、ヘラで慎重に隙間に力をかけていくと外れる。
外した写真がこれである。
メイン基板を拡大した写真がこれで、
どうやらメインのSoCらしきものの周りにチップがいくつかある。2つある「K4E8E324EB-EGCF」というチップがLPDDR3のメインメモリで、「KLMBG2JENB-B041」というチップが32GBのeMMCのフラッシュロムのようだ。これはもちろんはんだ付けされており取り外すことはできない。
microSDカードスロットらしきものも見当たらない。
目論見が外れてしまったが、こうなると27GBのストレージ内で運用面でやりくりするしかない。この端末に入れているのは字の本のみで、マンガは入れてないんだけどな。
Kindle Paperwhite、電子書籍リーダー、Wi-Fi 、ブラック
- 出版社/メーカー: Amazon
- メディア: エレクトロニクス
Reader Storeの複数ダウンロードの方法 [IT]
少し前にソニーの電子書籍ストアの「Reader Store」がリニューアルした。見やすく改善はされているものの、購入した書籍の一括ダウンロードができなくなっており、この点が非常に不便なのである。大量購入してもらいたくないのだろうか?
それはさておき、スマホやタブレットで見るならばPCのダウンロードは必要ないが、筆者が持っている電子書籍閲覧端末「Reader」はWiFi機能が無いモデルであるため、転送するにはPCでダウンロードする必要があり、いつ「Reader Store」が店じまいしてもいいようにバックアップもしたいので、PCでダウンロードはしたい。
[8/21追記:Webの「Reader Store」のサイトで購入完了の画面または自アカウントの本棚ページで読みたい本を選択して読みたい端末として「Reader」を選ぶと.mbbsファイルがダウンロードされる。]
この.mbbsファイルというのが、PCにインストールしたダウンローダーに関連付けられていて、ダブルクリックすると実データが「Reader」端末が接続されたPCおよび「Reader」端末本体にダウンロードされる仕組みになっている。1個1個.mbbsファイルをダブルクリックしてると、1冊ダウンロードして終わってからまたもう1回って繰り返すので面倒なのだ。
この.mbbsファイルの中身を見ると、XMLファイルになっている。とりあえず複数.mbbsファイルをダウンロードして、「<Product :xsi:type=…>…</Product>」で囲まれた範囲を「<Product_List xsi:type=…>…</Product_List>」の中にダウンロードしたい冊数分入れればいいようだ。
結局.mbbsファイルを1個1個ダウンロードして.mbbsファイルを編集する必要はあるけれども、とりあえずダブルクリック1回でPC及び「Reader」端末にダウンロードできるようにはなった。
自動化するバッチか、シェルスクリプトでも書いてみるかな。気が向いたら書きます。
追記:
できました。
bashのシェルスクリプトとWindowsのバッチファイル。バッチファイルの方はアイコンにまとめて放り込むとマージしてくれるようにしている。テキスト処理に使うのでsedをインストールといておくこと。
bash用シェルスクリプト
#!/bin/bash#merge_mbbs.sh#指定ディレクトリの.mbbsファイルをマージする#書式 ./merge_mbbs.sh 引数1 引数2#引数1 ディレクトリを指定#引数2 出力する.mbbsファイルのファイル名count=1#指定ディレクトリの.mbbsファイルを読み込むls ${1}/*.mbbs | while read linedo#最初のファイルでヘッダとフッタを生成if [ ${count} = 1 ]; then#「<Product xsi」より後を削除したものがヘッダsed -e 's/<Product xsi.*//g' ${line} > "${1}/${2%.*}_header.tmp"#「</Product>」より前を削除したものがヘッダsed -e 's#.*</Product>##g' ${line} > "${1}/${2%.*}_footer.tmp"#ヘッダを出力してマージ用.mbbsファイルを生成cat "${1}/${2%.*}_header.tmp" > "${1}/${2%.*}.mbbs"fi#ヘッダ部とフッタ部を削除した(<Product>タグで囲まれた)文字列を追加sed -e 's/.*\<Product xsi/\<Product xsi/g' "${line}" | sed -e 's#</Product>.*#</Product>#g' >> "${1}/${2%.*}.mbbs"count=`expr ${count} + 1`done#最後にフッタを出力cat "${1}/${2%.*}_footer.tmp" >> "${1}/${2%.*}.mbbs"#ヘッダとフッタを削除rm "${1}/${2%.*}_header.tmp"rm "${1}/${2%.*}_footer.tmp"
Windows用バッチファイル
@echo offsetlocal enabledelayedexpansionREM merge_mbbs.batREM ドラッグアンドドロップで放り込んだ.mbbsファイルを結合するREM SED.exeをパスの通った場所にインストールすることset /a count=1for %%a in (%*) do (if !count!==1 (REM 「<Product xsi」より後を削除したものがヘッダsed -e "s/<Product xsi.*//g" %%a > merge_header.tmpREM 「</Product>」より前を削除したものがヘッダsed -e "s#.*</Product>##g" %%a > merge_footer.tmpREM ヘッダを出力してマージ用.mbbsファイルを生成type "merge_header.tmp" > merge.mbbs)REM ヘッダ部とフッタ部を削除した(<Product>タグで囲まれた)文字列を追加sed -e "s/.*\<Product xsi/\<Product xsi/g" "%%a" | sed -e "s#</Product>.*#</Product>#g" >> "merge.mbbs"set /a count=!count!+1)REM 最後にフッタを出力type "merge_footer.tmp" >> "merge.mbbs"REM ヘッダとフッタを削除del "merge_header.tmp"del "merge_footer.tmp")REM pauseexit
青空文庫をSony Reader PRS-650用のePubに変換する その2 [IT]
以前青空文庫のファイルを分割するバッチファイルを載せたが、
・1行が長い文章だとうまく3分割できない
・ファイルの大きさでファイルを分割したい
など問題が生じたので、ファイルの大きさで分割するようバッチファイルを修正した。バッチファイル内の定数部分を変えれば好きな大きさでファイルを分割することができるようにした。
新たにperlとhead.batを使っているので、必要に応じてインストールされたし。
----------↓バッチファイルの中身-------------
@echo off
setlocal enabledelayedexpansion
REM ドラッグアンドドロップした青空文庫のZIPを展開して、短く分割する
REM SED.exeをパスの通った場所にインストールすること
REM head.batとtail.batをパスの通った場所にインストールすること
REM busybox.exeをパスの通った場所にインストールすること
REM ActivePerlをインストールすること
REM 2016/07/10 初版作成
REM 2016/11/18 動的にファイルを分割するようにした
REM ファイルをsplitする時のサイズ(kbyte)
SET split_size=150
for %%a in (%*) do (
REM 展開済みのフォルダを削除
rmdir /q /s "%%~na"
REM ZIPファイルを展開
"C:\Program Files\7-Zip\7z.exe" x -o"%%~na\" "%%~npxa" -y
REM 展開先フォルダに移動
cd "%%~na\"
REM 展開したファイルを元フォルダにコピー
copy *.txt ..\
for %%b in (*.txt) do (
REM 表題のファイルを作成(temp100)
sed -n -e 1,/---/p "%%~nb.txt" > "%%~nb_temp100.txt"
REM 【テキスト中に現れる記号について】ファイル(temp200)を作成
sed -n -e /---/,/---/p "%%~nb.txt" > "%%~nb_temp200.txt"
REM 表題を削ったファイル(temp210)を作成
sed -n -e /---/,$p "%%~nb.txt" > "%%~nb_temp210.txt"
REM 表題を削ったファイルからファイル1行目の----を削る(temp220)を作成
sed -n -e 2,$p "%%~nb_temp210.txt" > "%%~nb_temp220.txt"
REM 【テキスト中に現れる記号について】までを削ったファイル(temp230)を作成
sed -n -e /----/,$p "%%~nb_temp220.txt" > "%%~nb_temp230.txt"
REM 1行目の----を削る(temp240)
sed -n -e 2,$p "%%~nb_temp230.txt" > "%%~nb_temp240.txt"
REM 表題を削ったファイルからファイル1行目の----を削る(temp220)を作成
sed -n -e 2,$p "%%~nb_temp210.txt" > "%%~nb_temp220.txt"
REM 【テキスト中に現れる記号について】ファイル1行目の----を削る(temp300)
sed -n -e 2,$p "%%~nb_temp200.txt" > "%%~nb_temp300.txt"
REM 表題と【テキスト中に現れる記号について】ファイルを結合(ヘッダ部完成)(header)
type "%%~nb_temp100.txt" "%%~nb_temp300.txt" > "%%~nb_header.txt"
REM ヘッダ部分を削る(元の文から2回----が出るまで)削る(temp430)
sed -n -e /----/,$p "%%~nb.txt" > "%%~nb_temp405.txt"
sed -n -e 2,$p "%%~nb_temp405.txt" > "%%~nb_temp410.txt"
sed -n -e /----/,$p "%%~nb_temp410.txt" > "%%~nb_temp420.txt"
sed -n -e 2,$p "%%~nb_temp420.txt" > "%%~nb_temp430.txt"
REM フッタ部分を削る(本文完成)(main)
perl -0pe "s/\n\n\n\n/\njgokrpyht9iguyt\n\n\n/m" "%%~nb_temp430.txt" > "%%~nb_temp440.txt"
sed -n -e 1,/jgokrpyht9iguyt/p "%%~nb_temp440.txt" > "%%~nb_temp450.txt"
perl -0pe "s/jgokrpyht9iguyt\n//m" "%%~nb_temp450.txt" > "%%~nb_main.txt"
REM フッタ部を作成(footer)
sed -n -e /jgokrpyht9iguyt/,$p "%%~nb_temp440.txt" > "%%~nb_temp460.txt"
perl -0pe "s/jgokrpyht9iguyt//m" "%%~nb_temp460.txt" > "%%~nb_footer.txt"
REM 本文を指定したサイズ[kbyte]で分割
busybox split -b !split_size!k "%%~nb_main.txt" "%%~nb_splited_main.txt"
REM 各ファイルの先頭の行だけ抜き出す
set /a num=1
for %%c in (%%~nb_splited_main.txt*) do (
REM 先頭の行を抜き出す
call head "%%c" 1 > "%%~nc_sentou_!num!.txt"
set /a num=num+1
)
REM 次のファイルの先頭の行を足して、改行でファイルが切れるようにする
set /a num=1
set /a num2=2
for %%c in (%%~nb_splited_main.txt*) do (
if exist "%%~nc_sentou_!num2!.txt" (
type "%%c" "%%~nc_sentou_!num2!.txt" > "%%~nc_seiri_tail_!num!.txt"
) else (
type "%%c" > "%%~nc_seiri_tail_!num!.txt"
)
set /a num=num+1
set /a num2=num2+1
)
REM 次のファイルの先頭の行を削る(最初のファイル以外)(分割した本文完成)
set /a num=1
for %%c in (%%~nb_splited_main.txt*) do (
if !num!==1 (
type "%%~nc_seiri_tail_!num!.txt" > "%%~nc_seiri_head_tail_!num!.txt"
) else (
sed -n -e 2,$p "%%~nc_seiri_tail_!num!.txt" > "%%~nc_seiri_head_tail_!num!.txt"
)
set /a num=num+1
)
REM 分割した本文にヘッダとフッタを足して完成
set /a num=1
for %%c in (%%~nb_splited_main_seiri_head_tail_*.txt) do (
REM ヘッダに番号を付与
sed -e "2s/$/ !num!/" "%%~nb_header.txt" > "%%~nb_header_!num!.txt"
type "%%~nb_header_!num!.txt" "%%~nxc" "%%~nb_footer.txt" > "%%~nb_!num!.txt"
REM 生成ファイルをコピー
copy "%%~nb_!num!.txt" ..\
set /a num=num+1
)
)
REM 元フォルダに移動
cd ..\
REM 展開フォルダを削除
rmdir /q /s "%%~na\"
)
REM pause
exit
----------↑バッチファイルの中身-------------
青空文庫をSony Reader PRS-650用のePubに変換する [IT]
ふと思いたって、青空文庫を手持ちのSony Readerで読もうと思い、色々試行錯誤してみた。
以前ChainLPというソフトを使ってPDFに変換していたのだが、これは中身は画像なので、文字の大きさなどが変換できなくて美しくない。ここはやはり、XMDFかePubに変換したいところ。
探したところ、AozoraEpub3(参照:http://www18.atwiki.jp/hmdev/pages/21.html)というソフトでePubに変換できるみたいだ。試しに「吉川英治 三国志」で試してみたところ、特にエラーも無く変換は可能だった。しかし、Readerに転送してみると、表示できるファイルと表示できないファイルがあった。
持ってるSony Rederは初号機で、ePubの対応が完全じゃないらしい。XMDFに変換したいので探したが、AozoraXMDFというソフトはあるが、シャープが提供していたXMDFビルダーに食わせるXMLを生成するソフトで、そのXMDFビルダーは個人向けの配布は終了していてどうにもならない。何とかしてePubで読むしかない。
エラーが出る原因は最初は第三水準の文字かな?と思ったが違うみたいだ。現象としては「序」は読めるけど、本編が読めない。「序」は短いから長さが原因かな?と思ってテキストを切り分けてからAozoraEpub3で変換してみると、ビンゴだった。大体2000行以上だと読み込めなくなるようだ。
手動で切り分けてもいいけど、どうせなら自動化したいなと思ってバッチファイルを作ってみた。色々洗練されてないけど、とりあえず「吉川英治 三国志」なら問題なく変換できている。
青空文庫からダウンロードしたZIPファイルを、作ったバッチファイルのアイコンにドラッグアンドドロップすると、ZIPファイルと同じフォルダにテキストが生成される。生成されたテキストファイルをAozoraEpub3に食わせると、ePubファイルができる。
余裕をもって1500行で切り分けている。「吉川英治 三国志」だと大体3分割できるので、上中下を作ることにした。「序」とか「余録」とか短いものでも上中下が出来てしまうので、決め打ちしないで元のファイルの行数に合わせて生成するファイル数を決めたいところだけれども今のところ妥協。
バッチファイルの中身を以下に書く。
予め"tail.bat"をPATHが通ったフォルダに入れておくこと。(参照:http://shinta0806be.ldblog.jp/archives/7991457.html)
sed for Windows(参照:http://gnuwin32.sourceforge.net/packages/sed.htm)をインストールしておくこと。
7-Zip(参照:https://sevenzip.osdn.jp/)をインストールしておくこと。
--------------------以下バッチファイルの中身--------------------
@echo offREM 青空文庫のZIPを展開して、短く分割するREM 3分割するREM ※「吉川英治 三国志」しか試してないので注意for %%a in (%*) do (REM 展開済みのフォルダを削除rmdir /q /s "%%~na"REM ZIPファイルを展開"C:\Program Files\7-Zip\7z.exe" x -o"%%~na\" "%%~npxa" -yREM 展開先フォルダに移動cd "%%~na\"for %%b in (*.txt) do (REM 表題のファイルを作成(temp1)sed -n -e 1,/---/p "%%~nb.txt" > "%%~nb_temp1.txt"REM 【テキスト中に現れる記号について】ファイル(temp2)を作成sed -n -e /---/,/---/p "%%~nb.txt" > "%%~nb_temp2.txt"REM 【テキスト中に現れる記号について】ファイル1行目の----を削る(temp3)sed -n -e 2,$p "%%~nb_temp2.txt" > "%%~nb_temp3.txt"REM 表題と【テキスト中に現れる記号について】ファイルを結合(ヘッダ部完成)type "%%~nb_temp1.txt" "%%~nb_temp3.txt" > "%%~nb_temp4.txt"REM ヘッダ部込みで1行目から1500行までのファイル(上巻)を作成(temp5)sed -n -e 1,1500p "%%~nb.txt" > "%%~nb_temp5.txt"REM 1501行から3000行までのファイル(中巻)を作成(temp6)sed -n -e 1501,3000p "%%~nb.txt" > "%%~nb_temp6.txt"REM フッタ部込みで3001行から最後までのファイル(下巻)を作成(temp7)sed -n -e 3001,$p "%%~nb.txt" > "%%~nb_temp7.txt"REM キリ良くするため上巻に付け足すファイルを作成(次の見出しまで)(temp8)sed -n -e 1,/大見出し/p "%%~nb_temp6.txt" > "%%~nb_temp8.txt"REM キリ良くするため中巻に付け足すファイルを作成(次の見出しまで)(temp9)sed -n -e 1,/大見出し/p "%%~nb_temp7.txt" > "%%~nb_temp9.txt"REM 中巻の最初の「大見出し」から3000行まで切り出す(temp10)sed -n -e /大見出し/,$p "%%~nb_temp6.txt" > "%%~nb_temp10.txt"REM 下巻の最初の「大見出し」から最後まで切り出す(temp11)sed -n -e /大見出し/,$p "%%~nb_temp7.txt" > "%%~nb_temp11.txt"REM 上巻に付け足すファイルの末尾2行を削る(temp12)type "%%~nb_temp8.txt" | sed -e $d | sed -e $d > "%%~nb_temp12.txt"REM 中巻に付け足すファイルの末尾2行を削る(temp13)type "%%~nb_temp9.txt" | sed -e $d | sed -e $d > "%%~nb_temp13.txt"REM 中巻の先頭に1行追加する(temp14)REM 先頭に文字列を追加して、削除しているsed -e "1i #############" "%%~nb_temp10.txt" | sed -e s/#############// > "%%~nb_temp14.txt"REM 下巻の先頭に1行追加する(temp15)REM 先頭に文字列を追加して、削除しているsed -e "1i #############" "%%~nb_temp11.txt" | sed -e s/#############// > "%%~nb_temp15.txt"REM フッタを作るために適当に下から20行くらい切り出す(temp16)call tail "%%~nb.txt" 20 > "%%~nb_temp16.txt"REM フッタを作成(temp170)sed -n -e "/^$/,$p" "%%~nb_temp16.txt" > "%%~nb_temp17.txt"REM ファイルを結合REM ヘッダ+本文(上)type "%%~nb_temp5.txt" "%%~nb_temp12.txt" > "%%~nb_temp18.txt"REM (上)のヘッダ部を削除sed -n -e "/----------/,$p" "%%~nb_temp18.txt" > "%%~nb_temp19.txt"sed -n -e 2,$p "%%~nb_temp19.txt" > "%%~nb_temp20.txt"sed -n -e "/----------/,$p" "%%~nb_temp20.txt" > "%%~nb_temp21.txt"sed -e "/----/d" "%%~nb_temp21.txt" > "%%~nb_temp22.txt"rem | sed -e "1i #############" | sed -e s/#############// > "%%~nb_temp22.txt"REM 上巻本文にフッタ部分が含まれてたら削除sed -e "/底本:/,$d" "%%~nb_temp22.txt" > "%%~nb_temp24.txt"REM sed -e "/^$/d" "%%~nb_temp23.txt" > "%%~nb_temp24.txt"REM ヘッダ+本文(上)+フッタtype "%%~nb_temp4.txt" "%%~nb_temp24.txt" "%%~nb_temp17.txt" > "%%~nb_temp25.txt"REM 本文(中)type "%%~nb_temp14.txt" "%%~nb_temp13.txt" > "%%~nb_temp26.txt"REM 中巻本文にフッタ部分が含まれてたら削除sed -e "/底本:/,$d" "%%~nb_temp26.txt" > "%%~nb_temp27.txt"sed -e "/^$/d" "%%~nb_temp27.txt" > "%%~nb_temp28.txt"REM ヘッダ+本文(中)+フッタtype "%%~nb_temp4.txt" "%%~nb_temp27.txt" "%%~nb_temp17.txt" > "%%~nb_temp28.txt"REM ヘッダ+(本文(下)+フッタ)type "%%~nb_temp4.txt" "%%~nb_temp17.txt" > "%%~nb_temp29.txt"REM 「上」の文字を挿入(完成)sed -e "2s/$/ 上/" "%%~nb_temp25.txt" > "%%~nb_1_third.txt"REM 「中」の文字を挿入(完成)sed -e "2s/$/ 中/" "%%~nb_temp28.txt" > "%%~nb_2_third.txt"REM 「下」の文字を挿入(完成)sed -e "2s/$/ 下/" "%%~nb_temp29.txt" > "%%~nb_3_third.txt")REM 生成ファイルをコピーcopy *third.txt ..\REM 元フォルダに移動cd ..\REM 展開フォルダを削除rmdir /q /s "%%~na\")pause
--------------------以上--------------------
ソニー 電子書籍リーダー Reader 6型 Wi-Fiモデル ブラック PRS-T3S/B
- 出版社/メーカー: ソニー
- メディア: Personal Computers
so-netブログとtwitterの連携 [IT]
so-netブログとtwitterが連携できるようだ。記事を投稿するとtwitterにも投稿されるらしい。twitterに投稿すればmixiにも反映されるので、手間がかからない。
ちょっとテストしてみる。
mixi日記との連動 [IT]
mixi日記の設定を変更してこのブログと連動させることにすると、mixi日記が書けなくなってしまう。公開設定を細かく設定したい場合にmixi日記を使うので混載させてもらいたいところ。
あと、自分の日記の検索もできなくなってしまう。仕方がないので、こちらのブログを更新した際に、URLをmixi日記にコピペする運用にしよう。