2011-08-05 3 views
0

루비 1.9.2 Watir과 1.8.1(윈도우 7)

우리는 cmd를 프롬프트 (driver.rb)에서 우리의 루비 스크립트를 시작합니다. 루비 스크립트는 다음 cmd를 프롬프트 명령을 실행하기 위해 다음 행을 수행

response = `choice /c 12 /n /m "1. Qual -- 2. Test"` 

나는 사용자가 선택을하고 선택을 반환 할 수 있도록 선택을 표시하려면 프롬프트 창을 싶습니다.

명령을 실행하면 메시지가 표시되지 않지만 cmd 창이 응답을 기다리고 있습니다.

I는 입력 값 (1 또는 2)는 X가 I 선택한 가치와 문자열

(/c 12 /n /m "1. Qual -- 2. Test x) 

를 반환

.

루비 스크립트 실행이 끝나면 cmd 창에 프롬프트가 표시됩니다.

실행하면 스크립트가 종료 된 후 루비 스크립트 (예 : puts)의 출력이 표시됩니다.

ruby가 실행 중이고 is가 종료되거나 적어도 cmd 프롬프트 명령이 표시 될 때까지 기다리지 않고 출력을 cmd 창으로 이동하는 방법이 있습니까?

이 문제에 도움을 주셔서 감사합니다.

+0

이 문제는 없습니다. 나는'(0..5) .each {| i | 내가 쓴다. sleep 1}'을 루비 파일에 넣고 Windows 7의'cmd'에서 실행 시켰습니다. 그리고 매 초마다 출력을 얻었습니다. –

+1

왜 당신은 선택을 실행하기 위해 포격하고 있습니까? 하이 - 라인 보석을 사용하여 순수 루비로 완벽하게 할 수 있습니다 : http://rubygems.org/gems/highline –

+1

당신이 당신이 생각한 질문에 대해 이야기한다면 당신을 도울 수 있습니다. '에 대한 해답이었다. 테스트가 시작된 후 누군가가 Qual 또는 Test를 선택하게하는 이유는 무엇입니까? 루비에 매개 변수를 전달하는 방법, 또는 dos 프롬프트에서 질문하지 않고 옵션을 사용하는 약 백만 가지 방법이 있습니다. –

답변

0

다른 루비 스크립트가 필요하거나 포함하는 경우 해당 스크립트의 코드가 실행됩니다. 그것들이하는 일이 클래스, 메소드 등을 정의하는 것이라면 문제가되지 않습니다. 그러나 객체 나 메소드를 정의하는 부분이 아닌 실제 코드가 있다면, 다른 흐름 제어를 앞두고 실행하게 될 것입니다. 당신의 메인 스크립트에서.

나는 그것이 당신에게 무슨 일이 일어나고 있는지 확실하게 말할 수는 없지만, 물건을 구조화하려는 방법에 따라 달라질 수 있습니다.