W tym przykładzie przedstawiono metodę jednoczesnego eksportowania plików DWG z wielu folderów. Wykorzystywany jest ulepszony plik wsadowy obejmujący funkcje wykrywania błędów i zapisywania w dzienniku.
Plik wsadowy podczas każdego uruchomienia otrzymuje trzy parametry:
W poprzednim przykładzie każdy plik DWG musiał mieć odpowiadający mu profil eksportu. W tym przykładzie użytkownik może wybrać, czy używany jest odpowiadający profil czy profil domyślny. Jeśli plik DWG nie ma własnego profilu, wykorzystuje wówczas profil domyślny.
W pliku dziennika rejestrowane jest całe okno wiersza polecenia dla każdego pliku DWG. Ten plik korzysta z polecenia copyhist programu AutoCAD umożliwiającego przeniesienie historii okna wiersza polecenia do schowka systemowego. W tym przykładzie użyto darmowego, o otwartym dostępie do kodu źródłowego narzędzia winclip.exe umożliwiającego wklejenie zawartości schowka do pliku dziennika.
Plik wsadowy można wywołać z „zewnętrznego” pliku wsadowego: głównego pliku wsadowego zawierającego tylko odwołania do podrzędnego pliku wsadowego wraz z parametrami.
Przykładowo przypuśćmy, że użytkownik posiada rysunki pochodzące z trzech miast. Jeśli operacja wsadowa eksportuje rysunki z jednego miasta, to w zewnętrznym pliku wsadowym może znajdować następujący tekst:
batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
Aby korzystać z tej metody, należy określić oddzielny plik export.log dla każdego wywołania lub przenieść wiersz if exist export.log del export.log do zewnętrznego pliku wsadowego. W przeciwnym razie każde wywołanie spowoduje zastąpienie poprzedniego dziennika.
Nazwa poniższego przykładowego produkcyjnego pliku wsadowego to batchexport.bat. Tak jak poprzednio plik należy utworzyć go w programie Notatnik.
@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
Utworzono udoskonalony plik wsadowy zawierający funkcje wykrywania błędów i zapisywania w dzienniku, umożliwiający jednoczesne eksportowanie plików DWG z wielu folderów.