Windows에서 배치 파일을 사용하여 cURL 및 FTP로 폴더를 업로드 하시겠습니까?


1

하위 폴더와 파일을 포함하여 전체 폴더를 Windows 배치 (.bat) 파일에서 서버의 폴더로 업로드하려고합니다.

다음은 업로드 부분에 대한 명령입니다 ...

curl -T E:\Server\bootstrap3\_gh_pages\ -u USER:PASSWORD ftp://domain.com/bootstrap/

이것은 내가 얻는 오류입니다

curl: Can't open 'E:\Server\bootstrap3\_gh_pages\'!
curl: try 'curl --help' for more information

하나의 파일 만하려고하면 제대로 작동하고 어떻게 든 모든 폴더와 파일을 반복해야하며 도움이 필요하십니까?

나는 Googled를 가지고 있으며이 정확한 질문에 운이없는 몇 가지 좋지 않은 예를 시도했습니다.

답변:


6

문제는 curl이 디렉토리를 순환하지 않고 전체 디렉토리를 업로드하는 옵션이 없으며 *-확장을 지원하지 않는다는 것입니다. 그래서 내가 끝내었던 해결책은 .bat 스크립트를 작성하는 것입니다. 이 답변의 도움으로 https://stackoverflow.com/a/9429985

@echo off 
set localdir=C:\something
set ftphost=your.ftp.host.com
set ftpuser=yourftpuser
set ftppass=yourftppassword
set ftpdir=target/directory/on/server

setlocal enableDelayedExpansion

for /F %%x in ('dir /B/D %localdir%') do (
  set FILENAME=%localdir%\%%x
  curl -T !FILENAME! ftp://%ftphost%/%ftpdir%/ --user %ftpuser%:%ftppass%
)

2

Windows에는 유용하지 않지만 Linux에서는 curl과 find를 결합 할 수 있습니다.

find /server/ -exec curl -T {} ftp://some-ftp-site/folder/ --user user:pass \;

1

curl은 * nix (unix) 용으로 작성되었으므로 Windows 명령 프롬프트에서 작업 명령을 지정하는 데 문제가있을 수 있습니다. 이것은 주로 "(큰 따옴표) 및 \(역 슬래시) 처리와 관련이 있습니다.

시도 할 수있는 간단한 것은 :

  1. 파일 이름을 큰 따옴표로 묶습니다.
  2. 원하는 각 백 슬래시 전에 다른 백 슬래시를 추가하여 백 슬래시를 피하십시오.

따라서 다음과 같이 :

curl -T "E:\\Server\\bootstrap3\\_gh_pages\\" -u USER:PASSWORD ftp://domain.com/bootstrap/

다음과 같이 슬래시를 사용할 수도 있습니다.

curl -T "E:/Server/bootstrap3/_gh_pages/" -u USER:PASSWORD ftp://domain.com/bootstrap/


시도 할 수있는 또 다른 것은 curl에 ( -K또는 --config=) 명령 행 옵션 스위치 를 사용하는 것입니다 ( 여기에 유용한 정보가 있습니다 ).

기본적으로 모든 명령 줄 인수를 파일에 넣고 -K file(또는 --config=file)를 사용 하여 curl에게 인수를 찾을 위치를 알려줍니다.

따라서 다음과 같이 별도의 줄에 각 명령 줄 옵션이있는 파일 (예 : test.txt)을 만듭니다.

-T "E:\\Server\\bootstrap3\\_gh_pages\\"
-u USER:PASSWORD
--url=ftp://domain.com/bootstrap/

그런 다음 컬을 다음과 같이 실행하십시오.

curl -K test.txt
  or
curl --config=test.txt



이 방법 중 어느 것도 작동하지 않으면 Windows의 Cygwin 터미널 창에서 curl 명령을 실행해야 할 수도 있습니다. Windows에서 Cygwin과 함께 curl 사용에 대한 정보는 이 웹 페이지 를 참조하십시오 .


궁금한 점이 있는데, 원래 답변을 삭제 취소하지 않은 특별한 이유가 있고 필요한 경우 수정 하시겠습니까?
— Karan

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.