我必须说明的是,我花了 3 天时间编写脚本和批处理。我很难理解许多函数及其变化。
下面的批处理脚本应该允许我导出.shp来自 AutoCAD Map 3D 的文件并创建输入每个单独的文件夹中包含.dwg在 AutoCAD 中处理的文件。然后 Shapefile 被移动到重命名的文件夹中。我的脚本仅在所有 dwg 文件都位于一个文件夹中时才有效,其中。蝙蝠和.scr文件位于。
简而言之,我想创建一个脚本,查找目录 * 中的所有子文件夹D:\AutoRunLisp_setup\运行*并出口所有.shp里面的文件输入文件夹。
for %%f in (D:\AutoRunLisp_setup\Run\*.dwg) do ("C:\Program Files\Autodesk\AutoCAD 2023\acad.exe" %%f /b D:\AutoRunLisp_setup\Run\mapexport.scr
mkdir "D:\AutoRunLisp_setup\Run\input"
rename "D:\AutoRunLisp_setup\Run\input" "%%~nf_input"
move "D:\AutoRunLisp_setup\Run\cz_proiectata*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\aerian*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\subteran*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\ax_drum*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\cabinete*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\cam_proiectate*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\stalpi_proiectati*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
move "D:\AutoRunLisp_setup\Run\stalpi_existenti*.*" "D:\AutoRunLisp_setup\Run\%%~nf_input"
timeout 5 >nul
)
del D:\AutoRunLisp_setup\Run\*bak
我还想知道以下版本的脚本有什么区别:
for %%f in (D:\AutoRunLisp_setup\Run\*.dwg)
for %%f in (*.dwg)
for %%f in (*.*)
并请推荐在 Stack Exchange 中找到的其他类似示例。
请原谅我的英语不好。
谢谢,
答案1
@echo off
setlocal enabledelayedexpansion && cd /d "D:\"
set "_run_acad=start "" /wait "C:\Program Files\Autodesk\AutoCAD 2023\acad.exe""
set "_string_name=cz_proiectata,aerian,subteran,ax_drum,cabinete,cam_proiectate,stalpi_proiectati,stalpi_existenti"
for /r /d %%# in (.)do for %%i in ("%%~f#\*.dwg")do cd /d "%%~dpi" && (
2>nul md .\"%%~ni_input" & %_run_acad% "%%~fi" /b .\mapexport.scr
for %%G in (%_string_name%) do move .\"%%~G*.*" .\"%%~ni_input" )
del /q .\"*.bak" & endlocal
这是包含以下子文件夹的建议D:\
没有文件夹树的示例能够建议在精确位置包含子文件夹的内容,因此这是针对整个驱动器的建议。
尝试编辑您的问题并添加一条指向应到达您的实质性内容的路径,这样就可以尽快及时添加编辑。
下面是一个仅回应操作/命令的建议版本,您可以先尝试运行它并检查它在哪里遇到以及命令可能在哪里出错:
D:\>Run_Echo.bat >"%temp%\Out_log.txt" & "%temp%\Out_log.txt"
@echo off
setlocal enabledelayedexpansion && cd /d "D:\"
set "_run_acad=start "" /wait "C:\Program Files\Autodesk\AutoCAD 2023\acad.exe""
set "_string_name=cz_proiectata,aerian,subteran,ax_drum,cabinete,cam_proiectate,stalpi_proiectati,stalpi_existenti"
for /r /d %%# in (.)do for %%i in ("%%~f#\*.dwg")do cd /d "%%~dpi" && (
2>nul echo\md .\"%%~ni_input" & echo\%_run_acad% "%%~fi" /b .\mapexport.scr
for %%G in (%_string_name%) do echo\move .\"%%~G*.*" .\"%%~ni_input" )
echo\ del /q .\"*.bak" & endlocal
请参阅链接的解释内容
参见链接解释内容:
我还想知道以下版本的脚本有什么区别: