在引用当前目录文件的当前目录中批处理



请温柔一点。来自极端新手的第一篇文章。我什至不知道这是否是正确的地方

我设法创建了一些批处理文件,脚本和lisp,它们有效,但硬编码到我的C:drive上的特定文件夹。我希望能够将 .bat/.scr/.lsp 复制到网络项目文件夹,并让它们在添加到该特定文件夹的任何文件上运行。我们会在共享文件之前对其进行批处理。 下面是当前.bat,仅当我将要处理的文件复制到我的 C:\BATCHING 文件夹中时才有效。我不知道在哪里或如何添加%cd%%~dp0修饰符。

@ECHO OFF
CLS
ECHO 1. AutoCAD C3D 2015
ECHO 2. AutoCAD Map 2017
ECHO.
CHOICE /C 12 /M "Enter your Choice:"
:: Note - list ERRORLEVELS in decreasing order
IF ERRORLEVEL 2 GOTO c3d2017
IF ERRORLEVEL 1 GOTO c3d2015
:c3d2015
FOR %%V IN (C:BATCHING*.dwg) DO start "T" /w "C:Program FilesAutodeskAutoCAD 2015acad.exe" "%%V" /b "C:BATCHINGinsert E-FILE DISCLAIMER layout.scr"
GOTO End
:c3d2017
FOR %%V IN (C:BATCHING*.dwg) DO start "T" /w "C:Program FilesAutodeskAutoCAD 2017acad.exe" "%%V" /b "C:BATCHINGinsert E-FILE DISCLAIMER layout.scr"
GOTO End
:End

感谢您的帮助!

我相信你想要(只是显示修改):

:c3d2015
FOR %%V IN (%~dp0*.dwg) DO start "T" /w "C:Program FilesAutodeskAutoCAD 2015acad.exe" "%%~fV" /b "%%~dpVinsert E-FILE DISCLAIMER layout.scr"
GOTO End
:c3d2017
FOR %%V IN (%~dp0*.dwg) DO start "T" /w "C:Program FilesAutodeskAutoCAD 2017acad.exe" "%%~fV" /b "%%~dpVinsert E-FILE DISCLAIMER layout.scr"
GOTO End

您可以减少代码量,但仍使用报告的工作执行字符串。

@ECHO OFF
SET "VAR=5"
CLS
ECHO 1. AutoCAD C3D 2015
ECHO 2. AutoCAD Map 2017
ECHO.
CHOICE /C 12 /M "Enter your Choice:"
IF ERRORLEVEL 2 SET "VAR=7"
FOR %%A IN (*.dwg) DO START "" /W "%ProgramFiles%AutodeskAutoCAD 201%VAR%acad.exe" "%%~fA" /b "%%~dpAinsert E-FILE DISCLAIMER layout.scr"

谢谢@paul。这让我指出了正确的方向。我能够稍微修改它以使其工作。这是最终格式:

:c3d2017
FOR %%V IN (*.dwg) DO start "T" /w "C:Program FilesAutodeskAutoCAD 2017acad.exe" "%%~fV" /b "%%~dpVinsert E-FILE DISCLAIMER layout.scr"
GOTO End

最新更新