バッチファイルの作り方


 2006年11月14日、マイクロソフトよりWindows上の新しいコマンドライン(シェル)環境である、 Windows PowerShell(稼動OS:XP以降)が リリース(無償)されました。これにより、従来Windows上で作成に不自由していたバッチファイルのコマン ドも、はるかに強力なシェル環境が提供されたことにより、実現したいことの可能性も飛躍的に高まったもの と思われます。新しいシェル環境でもTRYCUTの起動オプションの利用ができます。むしろ、このシェル環境に よってTRYCUT起動オプションの利用価値が高まったと言えます。

 PowerShellについては既に様々なページで紹介されています。
http://www.atmarkit.co.jp/fdotnet/special/powershell01/powershell01_01.html

 なお、本ページは、あくまでも従来のコマンドライン上でのバッチファイル作成についての 内容になっています。もし、バッチファイルの作成で限界があるようでしたら、UNIXのクローン環境(後述)なども あるのですが、このPowerShellは、後発であることもあってUNIXのシェル環境をも凌駕してしまうぐらい の出来栄えです。今後はWindows PowerShell上での構築を推奨いたします。


  • 粗/中仕上げ/仕上げなど複数NCデータを連続実行し結果も残しておきたい。
  • 必要突出し長、加工時間などをひとつのログファイルにまとめたい。
  • 夜間に連続処理を登録しておきたい。

     こんなことを思ったことのある方は、このページを読んで下さい。 ただし、現在WindowsNT4.0,2000,XP,Server2003のいずれかで 稼動させている方に限ります。(※95,98,Me利用の方は、別ソフトの 「寝太郎」(フリーソフト)を利用して下さい。この場合、 EXE形式のファイルの連続実行のみの対応となります。)

     従来のDOS時代から、コンソール上でコマンドをマクロ化して連続実行するバッチ ファイル(*.BAT)が使われてきました。昨今のウィンドウ・システムの登場により コマンドライン(コンソール)は、Windows95以降から無くなってしまうという噂も ありました。 しかし現在もマイクロソフト自身が配布するツールもコマンドラインをベース にしたものが多く、プロフェッショナルなプログラマーの多くは、そのコマンドライン 上でバッチファイルを作成して作業の効率を上げているのが現状です。(※おかしな 話ですが、このページを公開して以来、TRYCUTユーザーとは全く関係ない方々からバッチファイルの作成方法に関する質問が絶えません。)

    参考:コマンドプロンプトを使ってみよう

     TRYCUT2000/3000の起動形式(特に/X5 又は/X6 オプション)も、この バッチファイルの中に記述して実行できるようにし、少しでも自動化できるようにとの 目的で用意しているものです。

     このバッチファイルとTRYCUT2000/3000の起動形式さえマスターすれば、シミュレーション 作業の様々な自動化が行えるものと思います。また更にシミュレーション前のCAMシス テムやシミュレーション後のDNC処理などもコマンドライン起動ができるなら、 さらに進化した環境が構築できるはずです。

    ※コマンドラインで作業するには、まずは

    Windows95,98,Meにおいては、
    「スタート」->「プログラム(P)」->「アクセサリー」->「MS-DOSプロンプト」

    WindowsNT4.0,2000,XP,Server2003においては、
    「スタート」->「プログラム(P)」->「アクセサリー」->「コマンドプロンプト(cmd)」

    を起動して下さい。頻繁に実行する場合は、上のようにフォーカスが当たっている 状態で右クリックして「送る」->「デスクトップ」を選択し、デスクトップにショートカットを作成しておいていただくと再起動が簡単で便利です。


    <バッチファイルの作り方>
    1.バッチファイルは拡張子(*.BAT)のファイルで作ります。
    2.テキスト形式のファイルですのでnotepadや秀丸エディターなどの デキストエディターで記述します。
    3.%1 %2 %3 は、引数の文字列として利用できます。

    <バッチファイルの例>
    [機能例]
     ワーク形状と、粗どり・中仕上げ・仕上げの3つのNCデータを指定して、 それぞれの必要突出し長と、加工時間、加工長さをログに残し、またそれぞれの 工程の加工形状も保存するという処理をいっきに実行する。

    [前提]
    ・初期設定ファイル(TRYCUT.INI)内で、
    ARBOR-CHECK =OUTPUT にする。
    ・帳票出力の定義フォーマット"VERIFY_FORM.DEF"は、インストール時のものと 同じものを利用。

    [起動フォーム]
    cut [被切削材名] [NCファイル名1][NCファイル名2][NCファイル名2]
    ※被切削材は、DMF形式,STL形式のいずれでもOK。

    [出力例]
     「寝太郎」(フリーソフト)の中にあるサンプルファイルを 利用し、
    cut nifty0.dmf nifty1 nifty2 nifty3 [Enter]
    で実行した結果がログファイル("trycut.log")に以下のように書き出されます。
    ___________________________________________________________
    2000/06/06 14:45:59:nifty1.nc
    非切削部分| 339(mm) | 2(秒)
    切削部分 | 610(mm) | 42(秒)
    総 和 | 949(mm) | 44(秒)
    T19:ブルエンドミル:突出= 6.000以上
    ___________________________________________________________
    2000/06/06 14:46:02:nifty2.nc
    非切削部分| 659(mm) | 4(秒)
    切削部分 | 102(mm) | 61(秒)
    総 和 | 761(mm) | 65(秒)
    T21:その他の工具:ARBOR未定義(算出不能)
    ___________________________________________________________
    2000/06/06 14:46:04:nifty3.nc(62) - 工具が破損しました(G00干渉)
    非切削部分| 665(mm) | 5(秒)
    切削部分 | 588(mm) | 240(秒)
    総 和 | 1253(mm) | 245(秒)
    T05:ボールエンドミル:突出= 6.000以上

    [バッチファイルの中身]
    "cut.bat"というファイル名で以下のような記述内容のファイルをTRYCUT2000/3000インス トール・フォルダに用意する。
    ERASE trycut.log
    @
    IF NOT EXIST %2.nc GOTO END
    ECHO ______________________________________________________ >>trycut.log
    TRYCUT /d %1 /o %2.dmf /x5 /v %2.nc
    TYPE VERIFY.TXT | FIND "mm" >>trycut.log
    TYPE 突出し長.TXT | FIND "=" >>trycut.log
    @
    IF NOT EXIST %3.nc GOTO END
    ECHO ______________________________________________________ >>trycut.log
    TRYCUT /d %2.dmf /o %3.dmf /x5 /v %3.nc
    TYPE VERIFY.TXT | FIND "mm" >>trycut.log
    TYPE 突出し長.TXT | FIND "=" >>trycut.log
    @
    IF NOT EXIST %4.nc GOTO END
    ECHO ______________________________________________________ >>trycut.log
    TRYCUT /d %3.dmf /o %4.dmf /x5 /v %4.nc
    TYPE VERIFY.TXT | FIND "mm" >>trycut.log
    TYPE 突出し長.TXT | FIND "=" >>trycut.log
    @
    :END
    NOTEPAD trycut.log

    ※上記FINDコマンドは、指定された文字を含む行のみ抜き出すというものです。 TYPEコマンドからのパイプで処理しているのは、ファイル名をなくすための フォローです。
     もしその必要がなければ、
    FIND "秒" VERIFY.TXT >>trycut.log
    のような記述でも問題ないです。
     また、全行ログに残してもよいのであれば、
    TYPE VERIFY.TXT >>trycut.log
    でもよいわけです。
    ※/X5 のところを /X6 に変更すれば、TRYCUT2000/3000は最小化された状態で実行され ます。


     上記例では、NCデータ名称の拡張子は(.NC)で、 引数指定では省略することが前提です。また、それぞれの加工結果は、指定された NCファイル名称と同じで、 拡張子がDMFになったファイルとして残されます。このあたりの仕様は、バッチ ファイルの記述方法により、どうにでも変更できます。また、上記例のような コマンドだけでなく、結果によってはDNCコマンドなどに直結させたり、 プリンター出力など、自由にカスタマイズすることも可能です。


    [バッチファイル作成例]
     ここではNCデータの編集用に一般的なバッチファイルの作成例を紹介させていただきます。
    機能:複数のNCデータを結合するバッチファイル
    処理内容:各々のNCデータの%とM30を取り除いて連結し、先頭に%、最後にM30と%を付加する。
    サンプルソース(join.bat)
    set MOJI=%1
    set NCDATA=join.nc
    echo %MOJI% >%NCDATA%
    :STARTJOIN
    IF "%2" =="" GOTO ENDJOIN
    TYPE %2 | FIND /V "%MOJI%" | FIND /V "M30" >> %NCDATA%
    SHIFT
    GOTO STARTJOIN
    :ENDJOIN
    echo M30 >>%NCDATA%
    echo %MOJI% >>%NCDATA%

     実行形式は、
    join 開始終了コード NC名1 NC名2 NC名3 ,,, [Enter]

    ※開始終了コードは % です。バッチファイル内では%が使えないので 外部引数からの指定にしています。
    ※NCデータはいくつでも指定できます。

    例えば、 join % nc1.nc nc2.nc nc3.nc nc4.nc nc5.nc [Enter]
    のように実行すると、実行したフォルダ内にjoin.ncが作成されます。
     このjoin.ncを使用して引き続きTRYCUT2000/3000でシミュレーションさせる 場合には、最後の行に
    C:\TRYCUT2000\TRYCUT /x4 join.nc
    などのような行を追加してみて下さい。



     なお、さらに高度なバッチファイルを作りたいという方は、「コマンドプロンプトを使ってみよう」などを読まれるとか、ベクターのダウンロード・サイトなどに掲載されている、Windows上で動作するUNIXライクツール(フリーソフト)や各種UNIX系コマンドツール(grep,sed,awk etc...)を併用されると、より強力なものが作りやすくなると思います。
     ただし、これらは対応されていないコマンドもありますので、もっと積極的にUNIXコマンドを利用したいという場合は以下のCygwinの 利用をお薦めします。

     TRYCUT2000/3000を利用する上で「こんなことをしたいけど、どうすれば?」という ようなものがありましたらこちらまで、ご質問下さい。答えられる範囲内で回答させていただきます。


    [UNIXのシェルを利用したい方に朗報]

    ★Cygwin

     バッチファイル作成者で、もしUNIXやLinuxの強力なシェル環境を経験された方であれば、バッチファイルをベースに考える のではなく、UNIX(Linux含む)のシェルのような環境で実行してみたいという願望が沸いて くるかもしれません。また、そうでなくともバッチファイル内で記述できるコマンドに不足を感じる方であれば、Cygwinを利用するのも得策です。フリーソフトでGPLを理解した上で利用する必要がありますが、保証がないとは言っても実績は十分で大変優れものです。

     CygwinはWindows上でファイルシステムに変更を加えることなくUNIX環境を実現してくれます。シェルを利用する場合も 基本的にはバッチファイルと同じようにコマンド列を記述して実行するのですが、UNIXコマンドは数段 ハイレベル(条件分岐、ループ、文字列検索、ソート、置換など)な処理が行えます。

    ※参考までに、Cygwin関連の以下3サイトを紹介しておきます。
    Windowsユーザーへ贈るUnixへの架け橋 - Cygwinを使いこなそう
    Cygwin を使う
    Cygwin JE(Cygwinの日本語化)

    ★Windows Services for UNIX

     もうひとつの手段として2004年にマイクロソフトが無償公開したWindows上で動作する Windows Services for UNIX (SFU) 3.5があり ます。インストール後、スタートメニューにCシェル環境が登録されます。この環境も使いこなせ ばCygwin同様の能力を発揮するはずです。また日本語版も正式に公開されていますのでより使い やすくなっているかもしれません。ただしインストールできるのは32bit Windows上だけの ようです。64bit Windowsへの対応がどうなるかはわかりません。


    トップページへ