【发布时间】:2016-03-10 08:50:41
【问题描述】:
我在编写代码方面已经走了这么远(在你们的帮助下here),但它并没有做它应该做的事情..
批处理的目标是打开所有 K_E*.dwg 文件并在这些文件上执行脚本。 K_E*.dwg 文件的长度应为 9。例如 K_E123456.dwg。
到目前为止,这段代码打开了一个dos窗口并再次关闭它.. 我的文件夹结构是这样的:
C:\Users\b00m49\Desktop\LSPTEST\0031\00\K_E000031.dwg
C:\Users\b00m49\Desktop\LSPTEST\0031\01\K_E010031.dwg
C:\Users\b00m49\Desktop\LSPTEST\0032\00\K_E000032.dwg
C:\Users\b00m49\Desktop\LSPTEST\0033\00\K_E000033.dwg ...
运行此代码的任何帮助都会很棒..
我对批处理非常陌生,所以对步骤的解释可能很方便,并且可能让我解决小问题。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
SET "sourcedir=C:\Users\b00m49\Desktop\LSPTEST"
for /r "%sourcedir%" %%a in (K_E*.dwg) do (
FOR /f "tokens=1,9delims=\" %%m IN ("%%a") DO (
REM %%n contain dirname or filename or empty
REM %%n is only empty for 0, 1 or 2 levels down.
IF "%%n"=="" (
SET "name=%%~na"
IF "!name:~9!"=="" IF "!name:~8!" neq "" (
REM the name is not longer than 9 characters, but IS longer than 8
ECHO(start /wait "C:\Program Files\Autodesk\Autocad 2013\acad.exe" "%%a" /b "C:\Users\b00m49\Desktop\LSPTEST\expSQM.scr")
)
)
)
)
GOTO :EOF
【问题讨论】:
标签: batch-file for-loop