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.