此示例展示了如何一次输出多个文件夹中的所有 DWG 文件。它使用包含错误检测和记录功能的增强批处理文件。
每次执行批处理文件时,该文件都会接收三个参数:
在先前的示例中,每个 DWG 都必须具有一个相应的输出配置。该示例既允许您使用相应的配置,也允许您使用默认配置。如果 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 文件。