문제

Cygwin에서 'Net Use'명령을 자동화해야합니다.

명령은 'net use /user : "name" externer'입니다. 'prosseek'에 연결하려면 '이름'의 비밀번호를 입력하십시오. '는 비밀번호를 입력해야합니다.

명령 줄 입력과 잘 작동하고 배치 파일 내부에서 실행될 때 잘 작동합니다. 다음과 같이 기대 스크립트를 만들 때 작동하지 않습니다.

spawn net use /user:"name" \\prosseek\somewhere
expect "Enter the password for 'name' to connect to 'prosseek':"
send "password\n"
interact

다음과 같이 오류 메시지가 나타납니다.

spawn net use /user:"name" \prosseek\somewhere
System error 67 has occurred.

네트워크 이름을 찾을 수 없습니다.

보내기 : "Send"Password n ""을 실행하는 동안 유효하지 않은 스폰 ID (4) (파일 "Conpros"라인 9)

  • Q : 무엇이 잘못 되었을까요?
  • Q : 일부 MS는 'Net Use'와 같은 Cygwin/Expect와 협력 할 수 있습니까?
도움이 되었습니까?

해결책

아마도 Cygwin의 기대를 사용하지 않을 수 있습니다. Cygwin은 Posix Ptys를 에뮬레이션하는 반면 Windows 프로그램은 Windows의 자체 터미널 처리 코드를 사용하는데, 이는 읽고 쓰려고하는 파이프 라인에 대해서는 아무것도 모릅니다.

당신은 또한 당신의 등 슬래시를 기대하지 못했습니다. 오류 메시지는 전달한 문자열과 다른 문자열을 제공합니다.

다른 팁

여기에 몇 가지 제안이있을 수 있습니다.

prosseek 어딘가에 탐색 할 수 있습니까? 그렇다면 나는 당신이 어딘가에 백 슬래시를 피해야 할 수도 있다고 생각합니다.

네트워크 이름 조각은 호스트 이름을 해결할 수 없음을 나타낼 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top