2014-09-25 2 views
0

서버에 FTP 연결을 열고 지정된 위치에 파일을 배치하는 배치 파일이 있습니다. 여기배치 파일에 명령 줄 인수를 전달할 수 없습니다.

ftpConnection.bat 파일보기 등 ..

open HOST 
FTP_USER_NAME 
FTP_USER_PASSWD 
cd TO_DIR 
lcd TO_FILE_LOCATION 
put THE_FILE 
quit 

및 명령 프롬프트에서 내가 잘 작동이 ftp -i -s:ftpConnection.bat처럼 실행하면 방법이다.

내 요구 사항은 그래서 난 %1 %2 and %3을 사용하려고하지만 나를 위해 작동하지 않는 인수

으로 HOST, USER_NAME과 암호를 전달하는 것입니다.

C:\Users\xxx\Desktop>ftp -i -s:ftpConnection.bat "HOST" "USER_NAME" "PASSWORD" 

또한 따옴표없이 시도했지만 결과는 동일처럼 인수를 전달, 그것은 FTP 서버를 실행과 컴퓨터에서

파일을 전송을을 보여주는 'S 서비스 (데몬이라고도 함). Ftp는 대화식으로 사용할 수 있습니다.

FTP [-v] [-d] [-i] [-s : 파일 이름] [-a] [-A] [-x : sendbuffer] [-r : recvbuf 그다지] [-b : asyncbuffers] [-w : windowsize] [호스트]

를 설정 사용하도록 제안 Batch file command line arguments

이어와How to pass multiple parameters in CMD to batch file 같은 몇 가지 문서를 시도 그리고 나는 아래처럼 그것을 시도했지만 결과는 동일합니다.

set host=%1 
set uname=%2 
set passwd=%3 
open %1 
%2 
%3 

내가 이것을 달성하는 것은 잘못 또는 포인터를하고있는 중이 야 어떤 사람이 나에게 제안 할 수 있습니다.

미리 감사드립니다. 내가 위의 그림과 같이 두 개의 % VAR 이름 % 사이에 묶어 다시 설정 변수를 사용할 수 있습니다

set host=%1 
set uname=%2 
set passwd=%3 
open %host% 
%username% 
%passwd% 

처럼

답변

3

을 시도해주십시오입니다 ftp 명령으로 예상되고 해석 된 입력 및 명령이있는 텍스트 파일을 사용하고 있습니다. 이것은 윈도우 배치 파일이 아니며 구문을 사용할 수 없습니다.

가 호출 인수로 필요한 데이터를 사용하려면 지금

@echo off 
    setlocal enableextensions disabledelayedexpansion 

    if "%~3"=="" goto :eof 

    set "TO_DIR=......" 
    set "TO_FILE_LOCATION=......" 
    set "THE_FILE=........" 

    > ftpScript (
     echo open %~1 
     echo %~2 
     echo %~3 
     echo cd %TO_DIR% 
     echo lcd %TO_FILE_LOCATION% 
     echo put %THE_FILE% 
     echo quit 
) 

    ftp -i -s:ftpScript 

, 당신은 배치 파일이 전달 된 인수의 FTP 스크립트를 생성하는 배치 파일이 필요합니다 (의는 doFTP.cmd를 호출하자) 명령 줄에서

doFTP.cmd ftpserver userName pa$$word 

인수가 %~1은 첫 번째 인수 인합니다 (%1, %2%3 변수에 저장되어있는대로 인용하는 경우를 주변없이 호출 할 수있는 페이지 재전송) 그리고 배치 파일 내에서 (echo 블록의 블록은 ftpScript 파일로 리디렉션됩니다) ftp가 처리 할 텍스트 파일을 생성하는 데 사용됩니다.

0

는 사용을 기반으로 그것은, 그것은 죄송합니다

+0

위의 제안대로 시도했지만 차이는 없습니다. –

관련 문제