2017-01-11 4 views
0

이것은 내 첫 번째 게시물 당신의 도움이 필요합니다. 배치 파일을 실행하여 스크립트 파일을 실행하지만 스크립트 파일을로드했지만 배치 파일을 실행할 때 오류가 발생했습니다. 배치 파일을 AutoCAD를 실행하면 열리고 명령 행에서 스크립트 파일 "Xpresslisp.scr"를로드하지 않으면 서 :실행 autocad exe 및로드 스크립트 파일 오류

@echo off 

set KEY_NAME=HKCU\Software\Laxman Enterprises\Xpresslisp Tools 
set VALUE_NAME=installpath 
set FN=loadload 
set FE=scr 

FOR /F "tokens=2*" %%A IN ('REG.exe query "%KEY_NAME%" /v "%VALUE_NAME%"') DO (set pInstallDir=%%B) 
set approot=%pInstallDir:~0,-1% 
echo %approot%\%FN%.%FE% 
"C:\Program Files (x86)\AutoCAD 2002\acad.exe" /b %approot%\%FN%.%FE% 
pause 

오류. "

을 파일을 찾을 수 하나없이 스크립트 파일 로딩을하고있다 노호 할 수 없습니다 오류가 발생했습니다

@echo off 
set path=%USERPROFILE% 
set fol=Documents 
set NAME=1 
set SUFFIX=scr 
"C:\Program Files (x86)\AutoCAD 2002\acad.exe" /b %path%\%fol%\%NAME%.%SUFFIX% 
pause 
+0

당신이 표시되는 오류 메시지를 포함하도록 게시물을 수정하시기 바랍니다 텍스트 추가 파일을 만들고 전나무가 라인에 기록합니다. – DaveyDaveDave

답변

1

...

텍스트 파일을 생성하고, 예를 들어 여기에 첫 선을 작성합니다

벨로 명령 아래 명령에서와 같은 "some text".

Echo some text > full_path_to_txt_file 

아래의 명령은 동일한 파일에 새 텍스트를 추가합니다.

Echo some text >> full_path_to_txt_file 

는 '>'문자는 '>>'문자가

+0

다시 한번 감사드립니다 YanivK 이제 문제가 해결되었습니다 –

+0

YanivK 어떻게 두 값을 추가할까요? 예를 들어 "% approot % \ % FN %. % FE %"경로 변수가 있고 ("% approot % \ % FN %를로드하십시오." % FE % ") = ("C : \ Xpresslisp Tools \ loadload.scr "로드) –

+0

무엇으로 결합할까요? 전체 실행 명령을 포함하는 새 변수와 비슷합니까? – YanivK

0

%path%\%fol%\%NAME%.%SUFFIX%이 "Xpresslisp.scr"파일에 대한 전체 경로를 반환하는지 확인하십시오!

그렇다면 전체 경로를 검사하고 공백이 있는지 확인하십시오.

는, 아포스트로피

"%path%\%fol%\%NAME%.%SUFFIX%" 
+0

와우 많은 많은 감사 YanivK 그것은 당신이 그 파일을 어디에로드되어있는 스크립트 파일을 말한 것처럼 견적을 추가했습니다 –

+0

당신은 환영합니다 :) 그래서 트릭을 한거야? 당신이 정교 할 수 있니? – YanivK

+0

또한 PowerShell을 사용하여 시작하는 것이 좋습니다. 여러 가지면에서 훨씬 효과적입니다. – YanivK

0

그것은 같은 맹목적으로 그것이 무엇인지, 확실히 모른 채 installpath의 마지막 문자를 제거 같은 간단한 수 있습니다와 %path%\%fol%\%NAME%.%SUFFIX% 둘러싸 않을 경우 (doublequote 또는 백 슬래시?). 이 후행 백 슬래시인지 아닌지

@Echo Off 

Set "KEY_NAME=HKCU\Software\Laxman Enterprises\Xpresslisp Tools" 
Set "VALUE_NAME=installpath" 
Set "FN=loadload" 
Set "FE=scr" 

(Echo=FILEDIA 0 
Echo=(LOAD "C:\\loadmyfile.lsp"^) 
Echo=FILEDIA 1)>%FN%.%FE% 

For /F "Tokens=2*" %%A In ('Reg Query "%KEY_NAME%" /v "%VALUE_NAME%"') Do (
    For /F "Delims=" %%C In ('Dir/B/S/A-D "%%~B"\"%FN%.%FE%" 2^>Nul') Do (
     Start "" "%ProgramFiles(x86)%\AutoCAD 2002\acad.exe" /b "%%~C")) 

이 상관하지 않습니다 만 것이다 다음 Xpresslisp Tools 트리에서 파일 이름의 복사본을 여러 될 가능성이있다으로

, 나는 이런 식으로 뭔가를 제안 파일이 있으면 AutoCAD 명령을 실행하십시오. 코멘트에 두 번째 질문에 대해서는

+0

변경 후 Compo는 몇 줄의 코드가 제대로 작동 하는지를 알 수 있습니다. –

+0

위의 주석을 기반으로 변경해야하는 유일한 줄은 줄 5, _ (제공된 오류 메시지로 인해 실제 코드에서 변경됨) _입니다. 위 응답에서 변경 했으므로 다른 내용은 변경하지 마십시오 , _ AutoCAD 경로 _을 변경할 필요가 없습니다. – Compo

+0

예 한 줄만 변경했습니다. 미안합니다. 내가 알아 차리지 못했습니다. –