2010-06-21 6 views
0

Visual Studio에서 .net 앱을 컴파일하기 전에 ant 스크립트에서 iisvdir을 실행하여 가상 디렉토리를 정리하고 만듭니다. 몇 가지 이상한 오류가 발생하여 서버를 만들었지 만 다른 스크립트는 문제없이 실행 중입니다.Ant 명령 행 도움말 : iisvdir

<exec dir="${SYSTEM32}" executable="cscript" failonerror="true"> 
     <arg line='iisvdir.vbs /create "Default Web Site" ${RS_VIRTUAL_DIR} "${env.WORKSPACE}"'/> 
    </exec> 

의 결과 :

 [exec] Microsoft (R) Windows Script Host Version 5.6 
    [exec] Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. 
    [exec] 
    [exec] Input Error: Can not find script file "c:\windows\system32\iisvdir.vbs". 

그리고

[exec] 'reate' is not recognized as an internal or external command, 
[exec] operable program or batch file. 

에서 다음

<exec dir="${SYSTEM32}" executable="cmd" failonerror="true"> 
     <arg line='cscript iisvdir.vbs /create "Default Web Site" ${RS_VIRTUAL_DIR} "${env.WORKSPACE}"'/> 
    </exec> 

결과 누군가가 나 잘못 될 일을 알아내는 데 도움이 수 있습니까?

답변

0
  1. 당신이 그것을?
  2. 은 CMD.EXE가 명령을 실행 얻으려면라고 iisvdir.vbs인가,/C 스위치를 사용해야합니다.

예 :

cmd.exe echo Hello 

... 매개 변수를 무시하고 다른 대화 형 명령 프롬프트를 하위 쉘로 실행합니다.

cmd.exe /c echo Hello 

... "echo Hello"문을 실행하고 즉시 반환됩니다. 참고 : cmd.exe가 명령문 실행 후 대화식으로 계속 실행되도록하려면/K를 사용할 수 있습니다 (일반적으로 빌드 스크립트에서는 좋지 않음).

당신의 명령

:

cmd.exe /c reat etc. 

이 cmd.exe를 가장 MS 명령 행 도구로 (때문이다 : 당신이 정말로 말했다 것처럼

cmd.exe cscript iisvdir.vbs /create etc. 

... 구문 분석지고) 이상한 명령 행 구문 분석.

업데이트 : 64 비트 OS입니까? Ant가 32 비트 작업이면 실제로는 (자동으로) C:\Windows\SysWOW64에 cscript.exe 및 iisvdir.vbs가 표시됩니다. 거기 있니? 그렇지 않은 경우 C:\Windows\SysNative을 사용해야합니다. 32 비트 작업에서는 실제 C:\Windows\System32 디렉토리의 별칭이 지정됩니다.

+0

예, iisvdir은 system32 폴더에 있습니다. 인수로/c를 혼동하는 문제는 정확히 무엇이 일어나고 있는지입니다. 그리고 내가 원하는 것을 수행 할 수있는 해결 방법을 찾을 수 없습니다. 이견있는 사람? – galuvian

+0

이것은 64 비트 OS이지만 기본 jvm은 32 비트입니다. 나는 또한 "cmd cscript iisvdir.vbs"를 성공적으로 호출하거나 데이터 집합을 삭제할 수 있다고 덧붙여 야합니다. – galuvian

+0

그래,'cmd/c cscript iisvdir.vbs/create etc ...'를 실행해라. –

0

문제의 원인인지 모르겠지만 < arg line = '에 작은 따옴표 (')를 사용하고 있음을 확인했습니다. 내가 본 모든 예제는 큰 따옴표 (")를 사용합니다. 큰 따옴표로 공백을 넣어 항목을 감추고 있다는 것을 알고 있습니다. 그래서 그들을 빠져 나오기 위해 필요할 수도 있습니다. 아마도 코드를 배치 파일로 옮겨서 다음을 통해 실행하기 전에 테스트 할 수 있습니다. 이 도움이 될 것입니다하지만, 올바른 방향을 알려줄 수 있다면 개미?

확실하지.

+0

처음 개미 스크립트 작업을 시작했을 때 명령 내에 큰 따옴표가 있어야하는 많은 명령이있었습니다. Ant 스크립트 자체에 대해 단일 또는 큰 따옴표가 모두 동일한 방식으로 작동 함을 발견했습니다. 이렇게하면 실제 명령에 큰 따옴표를 사용해야 할 때 스크립트에서 XML의 일부로 작은 따옴표를 사용할 수 있습니다. – galuvian

+0

명령 줄에서 iisvdir 명령을 실행해도 문제가 없습니다. 문제는 Ant가 올바르게 실행되도록하는 것입니다. 실망스러운 것은 다른 빌드 머신에서이 작업을 수행하고 두 번째 스크립트를 설정하려고하는데이 문제가 발생했습니다. Grr! – galuvian