この例では、複数のフォルダの DWG ファイルを同時に書き出す方法を示します。エラーを検出してログに記録する拡張バッチ ファイルを使用します。
実行するたびに、バッチ ファイルに次の3つのパラメータが渡されます。
前の例では、すべての DWG と書き出しプロファイルを対応させる必要がありました。この例では、対応するプロファイルまたは既定のプロファイルのいずれかを使用することができます。DWG ファイルに独自のプロファイルがない場合は、既定のプロファイルが使用されます。
ログ ファイルは、DWG ファイルごとにコマンド ウィンドウでの操作をすべて記録します。AutoCAD コマンド copyhist を使用して、コマンド ウィンドウの履歴をシステムのクリップボードに移動します。この例では、無償のオープンソース ツールの winclip.exe を使用して、履歴をログ ファイルに貼り付けます。
「外部」バッチ ファイルからバッチ ファイルを呼び出すことができます。外部バッチ ファイルは、下位バッチ ファイルの呼び出しのみが記述され、パラメータを提供するマスター バッチ ファイルです。
たとえば、3つの都市の図面があるとします。1つの都市の図面のフォルダをバッチ処理で書き出す場合、外部バッチ ファイルは次のように記述されます。
batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
この方法を利用するには、呼び出しごとに異なる export.log を指定するか、行 if exist export.log del export.log を外部バッチ ファイルに移動します。いずれかを行わないと、呼び出しを行うたびに前のログが上書きされます。
次のサンプル本番バッチ ファイルの名前は batchexport.bat です。これまで説明した手順を実行して、メモ帳で作成します。
@echo off setlocal rem Get and verify the command parameters set srcDir=%1 set outDir=%2 set defEpf=%3 if '%srcDir%' == '' goto usage if '%outDir%' == '' goto usage if '%defEpf%' == '' goto usage if not exist %srcDir% ( echo Source Directory "%srcDir%" not found. goto done ) if not exist %srcDir%\*.dwg ( echo No DWG files found in "%srcDir%". goto done ) if not exist %outDir% ( echo Destination Directory "%outDir%" not found. goto done ) if not exist %defEpf% (echo Default Export Profile "%defEpf%" not found. goto done ) if exist export.log del export.log rem Loop through the DWGs, exporting each for %%f in (%srcDir%\*.dwg) do ( if exist %outDir%\%%~nf.sdf del %outDir%\%%~nf.sdf echo. >> export.log echo ******* EXPORTING %%f TO %outDir%\%%~nf.sdf ******* >> export.log echo ******* EXPORTING %%f TO %outDir%\%%~nf.sdf ******* rem Create the Export Script ... echo _-mapexport> export.scr echo FDO_SDF>> export.scr echo %outDir%\%%~nf.sdf>> export.scr echo _yes>> export.scr if exist %%~df%%~pf%%~nf.epf ( rem Use a profile that has the same name as the DWG echo %%~df%%~pf%%~nf.epf>> export.scr ) else ( rem Use the default profile echo %defEpf%>> export.scr ) echo _proceed>> export.scr echo _copyhist>> export.scr echo _quit>> export.scr "C:\Program Files\AutoCAD Map 3D 2009\acad.exe" %%f /nologo /b export.scr winclip -p >> export.log ) goto done :usage echo USAGE: %0 [sourceDir] [destDir] [defaultExportProfile] echo example: %0 Redding\dwgs Redding\sdfs Redding\defExport.epf :done
エラーを検出してログに記録し、複数のフォルダの DWG ファイルを同時に書き出す拡張バッチ ファイルを作成しました。