// ページ作成:しらかみ
// 間違っている箇所やわかりにくい箇所がありましたら、修正をお願いします。
TITLE:バッチファイル
※このページの解説はWindowsユーザを対象にしています。&br;&br;

*datファイルとpngファイルからPakファイルを作る [#w7bb3145]
datファイルとpngファイルをmakeobjに読み込ませることで、Pakファイルを生成します。
ただし、makeobjは他のWindowsソフトとは違って、アイコンをダブルクリックしてもウィンドウが一瞬表示されるだけです。
makeobjはコマンドプロンプトかバッチファイルを使ってdatファイルを読み込ませます。
*バッチファイルを使ってPakファイルを作る [#ba601a9d]

**バッチファイルを作成する [#cb2e21c8]
+メモ帳を起動します。
+下記の文字列をコピペで貼り付けます。
 makeobj pak ./ ./ > err.txt 2>&1
(128サイズの場合はこちら)
 makeobj pak128 ./ ./ > err.txt 2>&1
+メニューバーの「ファイル」→「名前を付けて保存」を選択します。
&ref(SaveFileDialog.png,nolink);
+Pak化したいpng・datファイルがある場所を選択し、ファイル名を「create.bat」、ファイルの種類を「すべてのファイル (*.*)」にして保存ボタンをクリックします。

&ref(batIcon.png,nolink);
これでバッチファイルができました。

**バッチファイルを実際に動かす [#f6473955]
では、実際に動かしてみましょう。
上の項で作成したバッチファイルとmakeonj・アドオン化したいdatファイル・pngファイルを同じ場所に置きます。
あとはバッチファイルをダブルクリックすると、pakファイルが作成されます。

**バッチファイルの内容を変更する [#n343563c]
バッチファイルの内容を変更する場合は、バッチファイルを右クリックして「編集」を選択します。
テキストエディタが起動しますので、あとは普通のテキストファイルのように編集して上書き保存をすればOKです。

**バッチファイルコマンドとは [#z4893c76]
 makeobj pak ./ ./ > err.txt 2>&1
ここまで上記のような文字列を使ってきました、ここでこの文字列がどういう意味を持つのかを解説します。&br;&br;

:makeonj|Windowsに対してバッチファイルと同じ場所にあるmakeobjを起動しなさいという指示をしています。
:pak ./ ./|起動したmakeobjに対してここにあるdatファイル参照してpakファイルを生成しなさいという指示をしています。
:> err.txt 2>&1|作業の結果をerr.txtという名前のテキストファイルに書き込みなさいという指示をしています。&br;&br;

このようにバッチファイルは、決められた文字列(コマンド)を組み合わせて、Windowsや起動したアプリ(今回はmakeobj)に指示をすることができます。
また、コマンドプロンプトとは違い、何度も使う指示を予めを設定することや保存しておくことができます。&br;&br;

Windowsに対しての命令は1行につき1つの指示を出すことができます。
コマンドは基本半角文字(1byte文字)で書きます。
大文字と小文字の区別はしません。(どちらで書いても同じ動き方をします)
**makeobjのコマンドいろいろ [#g7cfd826]
// 別ページにしたほうがいいかも

※ここから先は「> err.txt 2>&1」を省略します。エラー情報をテキストファイルに出力したい場合は、文字列末端に「> err.txt 2>&1」を付けてください。
***名前の違うmakeobjを使用するとき [#t643f1b6]
makeobj.exe以外の名前のmakeobjを使用するときは、makeobjコマンドの代わりに拡張子を除くファイル名を記入します。
 例:makeobj55-2.exeを使用する場合
 makeobj55-2 pak ./ ./

***pak pak32 pak96 pak128 pak192 pak256 [#ka27f1f5]
datファイルからpakファイルを生成します。
64サイズ以外をpakするときには、「pak」の後にサイズを記入します。
 例:64pxサイズで作成する場合
 makeobj pak ./ ./
 もしくは
 makeobi pak
&br;
 例:128pxサイズで作成する場合
 makeobj pak128 ./ ./
 もしくは
 makeobj pak128
&br;
以下はpak・datファイル指定の組み合わせサンプルです。
|>|''makeobj pak''|h
|読み込むdatファイル|makeobjのあるフォルダに存在するすべてのdatファイル|
|生成するpakファイル|個別のpakファイル|
&br;
|>|''makeobj pak AeonSet.pak''|h
|読み込むdatファイル|makeobjのあるフォルダに存在するすべてのdatファイル|
|生成するpakファイル|すべてのアドオンを「AeonSet.pak」にまとめて生成|
&br;
|>|''makeobj pak ./ AeonCube.dat''|h
|読み込むdatファイル|AeonCube.dat|
|生成するpakファイル|個別のpakファイル|
&br;
|>|''makeobj pak AeonSet.pak AeonCube.dat''|h
|読み込むdatファイル|AeonCube.dat|
|生成するpakファイル|すべてのアドオンを「AeonSet.pak」にまとめて生成|
&br;
|>|''makeobj pak ./ AeonCube.dat ./AeonParking.dat''|h
|読み込むdatファイル|AeonCube.datとAeonParking.dat|
|生成するpakファイル|個別のpakファイル|
&br;
|>|''makeobj pak AeonSet.pak AeonCube.dat AeonParking.dat''|h
|読み込むdatファイル|AeonCube.datとAeonParking.dat|
|生成するpakファイル|すべてのアドオンを「AeonSet.pak」にまとめて生成|
**アドオン製作で使えるコマンド [#zac8d2fe]
※以下はSimutransに特化した説明です
***rem [#t3bcf075]
行の先頭に「rem」を付けることで、その行はコメント行になります。
注釈を記入する時や、コードを動かしたくないけど残しておきたいときに使えます。
 例:
 rem 今夜はカレーなので夕方までにジャガイモを買う
 rem makeobj pak ./ ./
***move [#we96b8c3]
ファイルを移動します。
''移動先に同じ名前のファイルがあると上書きされるので注意''
 例:test.pakをpakフォルダの中に移動
 move test.pak D:\Simutrans\pak\test.pak

***copy [#s204c405]
ファイルをコピーします。
''コピー先に同じ名前のファイルがあると上書きされるので注意''
 例:test.pakをpakフォルダの中にコピー
 copy test.pak D:\Simutrans\pak\test.pak

***start [#j375e26c]
アプリケーションを起動します。
省略して直接アプリケーション名を書いても起動しますが、その場合そのアプリケーションが終了するまでコマンドプロンプト画面が出てしまいます。

 例:フルパスで起動する場合
 start D:\Simutrans\Simutrans.exe
&br;
 例:相対パスでも起動できます
 start Simutrans.exe

***set [#rbfc3f66]
文字列を変数に保存します。
変数は構文中に %変数名% と書くことで使うことができます。

 例:変数を使ってSimutrasnを起動する
 set FileName = Simutrans.exe
 start %FileName%

***pak化から移動、Simutrans起動までを一回でおこなう [#wb19e1e2]
 rem datファイル名を代入
 set DatFileName=Test.dat
 
 rem pakファイル名を代入
 set PakFileName=way.Test.pak
 
 rem Simutransフォルダ(フルパス)を代入
 set SimutransFolder=D:\Simutrans\
 
 rem makeonjでpak化(64サイズ)
 makeobj pak ./%PakFileName% ./%DatFileName% > err.txt 2>&1
 
 rem 作成したpakファイルをアドオンフォルダ(pak)にコピー
 copy %PakFileName% %SimutransFolder%pak\
 
 rem Simutransを起動する
 start %SimutransFolder%simutrans.exe -singleuser