Exercício 2: Criar um arquivo em lote de produção

Este exemplo mostra como exportar arquivos DWG em várias pastas de cada vez. Ele utiliza um arquivo de lote melhorado que inclui detecção de erro e registros.

O arquivo em lote recebe três parâmetros cada vez que é executado:

Utilizando um arquivo de registro

O arquivo de registro captura toda a janela de comando para cada arquivo DWG. Ele utiliza o comando do AutoCAD copyhist, que move o histórico da janela de comando para a área de transferência do sistema. Este exemplo utiliza winclip.exe, uma ferramenta gratuita de código aberto, para colar isso no arquivo de registro.

Utilizando um arquivo de lote externo

É possível chamar o arquivo em lote a partir de um arquivo de lote “externo”: um arquivo em lote principal que contenha somente chamadas para o arquivo em lote subordinado, fornecendo os parâmetros.

Por exemplo, suponha que você tenha desenhos para três cidades. Se a operação em lote exportar uma pasta de desenhos para uma cidade, o arquivo de lote externo pode conter o seguinte:

batchexport Redding\DWGs Redding\SDFs Redding\DefExport.epf
batchexport Spokane\DWGs Spokane\SDFs Spokane\DefExport.epf
batchexport Dubuque\DWGs Dubuque\SDFs Dubuque\DefExport.epf
Nota:

Para usar este método, especifique export.log diferente para cada chamada, ou mude a linha if exist export.log del export.log para o arquivo de lote externo. Caso contrário, cada chamada substitui o registro anterior.

Arquivo de lote de produção de amostra

O seguinte arquivo em lote de produção de amostra é denominado batchexport.bat. Crie-o no Bloco de notas, como feito nos procedimentos anteriores.

@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

Onde você está agora

Você criou um arquivo de lote melhorado com detecção de erro e registros para exportar arquivos DWG em várias pastas de cada vez.