タイトルはそのうち決める

艦これのおぼえがきとか実験装置とかLaTexのメモとか。

Sma4winのセーブデータを作るバッチファイルのメモ

誰得な、Sma4winのデータを作るbatファイルを作るメモ。

windowsのechoコマンドを使うだけ。
改行コードごと置換できるテキストエディタが必要。

事前にsma4でひな型になるセーブデータを作っておく。

 セーブデータをテキストとして開いて、

      1. 特殊文字を置換する

        ^ → ^^ *1

      2. 特殊文字を置換する

        % → %% *2
        < → ^<
        > → ^>
        | → ^|
        & → ^&

      3. 改行コードを含むように選択して、置換する。

        【改行】

        【改行】echo>>%filename%【半角スペース】*3

        に置換する。

        f:id:kurosakiworks:20190223132258p:plain

        置換前は改行のみ、置換後は改行の後にechoコマンド
      4. 空白行出力のための修正。

        echo>>%filepath%の後ろが空白の行はうまく出力されない。
        sma4では空白行の数がおかしいと天地が崩壊してしまう。
        そのため、空白行もちゃんと出さないといけない。

        【改行】echo>>%filepath%【半角スペース】【改行】

        【改行】echo.>>%filepath%【半角スペース】【改行】

        に置換する。echoの後ろにピリオドを付ける。

        f:id:kurosakiworks:20190223133400p:plain

        どちらも最後は改行が入っている
      5. ファイルの先頭に、ソースのファイル名を取得する行を追加する。

        set sourcefilename=%~nx1 *4

      6. set filename=%sourcefilename%

        :rename
        if not exist %filename%.SMP goto name
        set filename=%filename%'
        echo renamed to %filename%.smp
        goto rename *5

        :name
        set filename=%filename%.SMP

      7. Sma4のデータファイル名に当たる部分を置換する。

        一つのデータあたり二カ所ある。
        [ファイル名] となっている部分と、その次のパスを表す行。
        ここの中身を%sourcefilename%にする。

これでだいたいできるはず。

X軸とかY軸とかも変数にしておくと、柔軟性が上がる。

Sma4使ってる人にはなかなか会わないから多分需要はないけど。

*1:これを後でやると悲惨

*2:変数を入れた後でやると悲惨。環境変数の%まで殺されてしまう。

*3:最後の半角スペースが大事。

*4:こうしておくと、ドラッグ&ドロップしたときにパスが取れてファイル名だけになる。気にしないなら%1でOK。

*5:ファイルのあるなしをチェックして名前を変える。