2012-10-31 3 views
2

배치 파일을 사용하여 Windows 컴퓨터에서 원격 Linux 컴퓨터에 사용자 지정 명령을 실행하고 싶습니다. 커스텀 커멘드는, 배치 파일에 의해 추가로 사용되는 정수 치를 돌려줍니다. 이것을 어떻게 할 수 있습니까?Windows 컴퓨터에서 원격 컴퓨터의 사용자 지정 명령을 배치 파일을 사용하여 실행하십시오.

나는 내 윈도우 머신에 그 파일을 다운로드하고, 지금, 나는 배치 파일에서 winscp를 호출 오전 winscpget 명령을 사용하여 원격으로 파일에 winscp에서 명령의 출력을 기록. 그 후 배치 파일에서 해당 파일을 읽습니다. 좋아,하지만 아주 긴 과정.

제 목표는 배치 스크립트에서 사용할 수있는 명령 출력을 얻는 것입니다. 따라서 배치 파일에서 값을 더 많이 사용할 수 있습니다.

+0

왜 가까이 티켓? –

+0

귀하의 질문은 여기에 속하지 않으므로 serverfault에 있습니다. 가까운 쪽이 충분한 표를 얻는다면, 질문은 여기에서 serverfault로 옮겨 질 것입니다. ;) – brimborium

답변

3

또 다른 옵션은 plink.exe입니다. 그것은 PuTTy의 명령 줄 버전입니다, 당신은 퍼티가 설치되어있는 경우, 당신은 이미 배치에서

는,이 같은 것을 볼 것이다 (퍼티 같은 디렉토리에) 가용 스루풋이 있습니다

%PATH_TO_FILE%\plink.exe -batch [email protected] "remote command" 
SET RETVAL=%ERRORLEVEL% 
IF NOT ["%RETVAL"]==["0"] (
    ECHO "Remote Command failed" 
) ELSE (
    ECHO "Command returned with exit code %RETVAL% 
) 
+0

소리가 좋아 ..... 예 .. 퍼티가 내 컴퓨터에 설치되었습니다 ... –

+0

슬랩 : '% PATHTOPUTTY % plink.exe [email protected] -pw test @ 123 -m commands.txt ECHO 이것은 밖으로 % ERRORLEVEL %' 콘솔에서 내가 받고있어 이것은 밖으로 0, 올바르지 않습니다. 그냥 plink.exe에서 반환 된 값을 일부 변수에 할당하여 더 이상 사용할 수 있도록하려고합니다. –

+0

마지막 linux 명령의 _is_ 반환 값입니다. 마지막 linux 명령 다음에'echo $? '라고 입력했을 때와 동일합니다. 어쩌면 당신이 요구하는 것은 반환 코드 (오류 코드, 종료 코드)가 아니지만 명령의 실제 출력을 원하십니까? 이 경우 Windows 상자의 파일로 리디렉션해야합니다. 'whole_plink_command_ending_in_-m_commands.txt> outFile.txt'를 참조하십시오. 그 파일을 변수'SET/P Value <= outFile.txt'에 읽어 들인다. 이제'% Value % '를 사용할 수 있습니다. "for/f"구문을 사용하여 임시 파일을 만들지 않고이를 수행하는 방법이 있지만 오류 처리에 대한 특정 제어가 손실됩니다. – Slav

1

ssh를 사용하여 Linux 컴퓨터에서 원격 명령을 실행할 수 있습니다. 당신은 그런 http://sshwindows.sourceforge.net/

에서 OpenSSH를의 명령 줄 창 포트를 얻을 수, 배치 파일에서, 당신은 단순히 추가

ssh linuxserver command-name 

이 명령 이름의 출력을 반환합니다

예를 들어

:

ssh linuxserver uname 

출력 : "리눅스"

희망이 HEL 추신.

+0

Windows에서'ssh'를 시도하지 않았습니다. 작동면 꽤 흥미 롭습니다. –

관련 문제