windows - Kan ikke uploade filer og mapper i mappen via FTP i batch script

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et par mapper, jeg ønsker at uploade til en server via FTP.


Dette er mappestrukturen:


build >
    fonts >
        - font1.ttf
        - font2.ttf
    images >
        - img1.png
        - img2.png
    javascripts >
        - script.js
    stylesheets >
        - style.css
    index.html


Jeg har fileup.bat:


@echo off
echo user USERNAME> ftpcmd.dat
echo PASSWORD>> ftpcmd.dat
echo prompt>> ftpcmd.dat

echo cd \%1>> ftpcmd.dat
echo lcd \%2>>ftpcmd.dat
echo mput *.*>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat 123.456.78.9
del ftpcmd.dat
pause


Og run\_ftp.bat, som er en enkelt linje, public\_html/ er destinationen for filerne på serveren, og C:Webuild er hvor filerne er placeret på min pc:


fileup public\_html/ C:Webuild


run\_ftp.bat er placeret i C: \ Web og fileup.bat er i C: \ Windows, så det vises i PATH og jeg kan køre fil i cmd.


Når jeg kører run\_ftp.bat, er de eneste filer, der hentes til serveren, i roden til/build, så kun index.html uploades. Konsolets logfiler: Error opening local file fonts. for hver af mapperne inde/bygge.


Her er loggen:


230 OK. Current restricted directory is /
ftp> prompt
Interactive mode Off .
ftp> cd public\_html/
250 OK. Current directory is /public\_html
ftp> lcd C:Webuild
Local directory now C:Webuild.
ftp> mput *.*
Error opening local file fonts.
Error opening local file images.
200 PORT command successful
150 Connecting to port 57128
226-File successfully transferred
226 0.142 seconds (measured here), 1.78 Mbytes per second
ftp: 265174 bytes sent in 0.07Seconds 3682.97Kbytes/sec.
Error opening local file javascripts.
Error opening local file stylesheets.
200 PORT command successful
150 Connecting to port 57129
226-File successfully transferred
226 0.033 seconds (measured here), 36.90 Kbytes per second
ftp: 1229 bytes sent in 0.01Seconds 102.42Kbytes/sec.
ftp> quit
221-Goodbye. You uploaded 261 and downloaded 0 kbytes.
221 Logout.
Press any key to continue . . .


Ingen af ​​filerne er mapper inde i build-mappen, når jeg kører .bat-filen, jeg er stumped, hvorfor ingen af ​​mapperne uploades. Jeg har forsøgt at erstatte bin med ascii]] men det gør ingenting.

Bedste reference


Windows kommandolinje ftp.exe klient understøtter ikke rekursive operationer.


Du skal bruge en tredjeparts FTP-klient.





For eksempel med WinSCP kan du bruge: [18]


winscp.com /log=ftp.log /command ^
    "open ftp://USERNAME:PASSWORD@ftp.example.com/" ^
    "mput ""\%2*"" ""\%1""" ^
    "exit"


Der er en guide til konvertering af Windows ftp.exe script til WinSCP script. Selvom det er lettere at have WinSCP GUI generere scriptet eller batchfilen til dig. [19] [20]


(Jeg er forfatter til WinSCP)