2013-05-20 4 views
-6

에 배치 파일을 실행합니다 :어떻게 xp_cmdshell을

exec master..xp_cmdshell 'C:\f\alert.bat' 

나는 다음과 같은 오류 메시지가 :

'C:\f\alert.bat' is not recognized as an internal or external command, 
operable program or batch file. 
내가 xp_cmdshell을 사용하여이 배치 파일을 실행할 수있는

?

편집 : 위의 명령은 그대로 사용합니다. 공백이있는 매개 변수를 사용하고 있지 않습니다.

+2

가능한 복제 http://stackoverflow.com/questions/3759331/escaping-command-parameters-passed-to-xp-cmdshell-to-dtexec – billinkc

+0

@billinkc 그 질문에 대한 대답을 볼 때 볼 수있는 것은 당신이 볼 수 있듯이, 이미하고있는 DOS 8.3 명명 규칙. 나는 두 사람이 당신의 코멘트를 upvoted 것을 볼 수 있지만 어쩌면 내가 정말 분명 무언가를 놓치고있어 믿을 수 있습니다. 그렇다면, 제발 저에게 지적 해 주시겠습니까? –

+2

편집하기 전에 제 생각에는'C : \ f \ alert.bat'는 실제 명령의 스텁이었습니다. 내 xp_cmdshell 호출 공백이 있으면 오류 메시지를 재현 할 수 있습니다. 'exec master..xp_cmdshell 'C : \ f \ alert.bat'self를 참조하십시오. C : \ f c : \ DoesNotExist를 변경할 수 있으며 공백이있는 한 "not recognized"오류 메시지가 반환됩니다. 그 해결 방법은 8.3 명명 규칙 또는 큰 따옴표를 사용하는 것인데, 둘 다 언급 된 질문에 설명되어 있습니다. – billinkc

답변

-4

여러 대의 서버가 실행 중이며 로컬 서버 대신 원격 서버에서이 명령을 실행하려고했습니다. 그래서 배치 파일이 분명히 원격 서버에 없었기 때문에이 오류가 발생했습니다.

+2

당신은 실제 오류 메시지를 게시하지 않았다. ''C : \ f \ alert.bat '는 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다. 실제로 본 내용을 이해하기 위해 몇 가지 테스트를 수행했지만 오류로 다시 작성하지 못했습니다. 명령을 게시했습니다. –

+0

@MikaelEriksson 때로는 오류가 발생하는 컴퓨터가 아닌 다른 컴퓨터에서 SO에 액세스해야하는 경우, 분명히 복사/붙여 넣기 대신 오류 메시지를 입력 할 것입니다. 유일한 차이점은 실제 메시지는 'alert.bat'대신 'C : \ f \ alert.bat'입니다. 나는 이것이 진정으로 너를 버리거나 아니면 내 질문에 골라 뽑으려고하는지 궁금해한다. –

+0

왜 그렇게 생각하니? 우리는 내가 당신을 불쾌하게 여기는 또 다른 질문에 대답하거나 논평 한 역사를 가지고 있습니까? 나는 가끔씩 조금은 직접적으로 할 수 있다는 것을 알고 있습니다. 그렇다면 정말로 사과드립니다. –

관련 문제