練習 2:建立生產層級批次檔案

此範例展示如何一次匯出多個資料夾中的多個 DWG 檔案。其使用包括錯誤偵測和記錄的增強批次檔案。

每次執行批次檔案時,它將接收三個參數:

使用記錄檔

記錄檔為每個 DWG 檔案擷取整個指令視窗。它使用 AutoCAD 指令 copyhist (將指令視窗歷程移至系統剪貼簿)。此範例使用免費的開放原始碼工具 winclip.exe,將擷取的指令視窗貼至記錄檔。

使用外部批次檔案

您可以從「外部」批次檔案呼叫此批次檔案:外部批次檔案是主要批次檔案,其僅包含對提供參數的下級批次檔案。

例如,假設您有三個城市的圖面。如果批次作業匯出一個城市資料夾內的圖面,則外部批次檔案應包含以下內容:

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,並包括錯誤偵測和記錄。