commandline ftp
Daily Rush › Debat › Programmering › commandline ftp
- Dette indlæg indeholder 11 kommentarer, har 4 deltagere og blev senest opdateret af
Skye for 10 år, 2 måneder siden.
-
ForfatterEmne
-
31/10/2010 kl. 12:41 #0
Hey
hvordan laver jeg en .bat fil der logger ind på min ftp og downloader alle filer i en mappe til en forudbestemt lokal mappe og derefter flytter filerne til en undermappe på serveren??
Hvorfor lad være ???
-
ForfatterEmne
-
ForfatterKommentarer
-
31/10/2010 kl. 12:54 #1
Jeg tror ikke at en bat fil er sagen, da du ikke rigtigt kan pipe’e kommandoer ind i dit FTP-program. Så skal det hele foregå på en enkelt linje, med login-procedure og overførsler osv.
P=NP?
31/10/2010 kl. 13:24 #2ftp open http://ftp.minefiler.dk brugernavnet:kode copy *.* C:\ftp filer
DAMN YOU Clicker Heroes!
31/10/2010 kl. 15:03 #3#1
Nah, du kan generere et ftp-script under eksekveringen af batch filen.Du kan ovenikøbet køre test på om filerne allerede eksisterer, og så kun hente dem der ikke gør.
Førstnævnte gøres ved at pipe kommandoer til ftp-script filen.
f.eks:
set tempfil=ftp-script.txt
>>%tempfil% echo username
>>%tempfil% echo password
>>%tempfil% echo quote pasv
>>%tempfil% echo prompt n*** Kald til under’funktion’ som danner listen over filer der skal hentes og skriver en linje til ftp-scriptet med
mput og 3 filnavn (eksempel)til sidst kaldes:
ftp -s:ftp-script.txt ip portOvenstående er selvfølgeligt langt fra korrekt, og er skrevet mens jeg stadigt forsøger vågne.
Har et komplet script liggende på arbejde, som kun skal justeres lidt for at det virker, som #0 ønsker det.
O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
31/10/2010 kl. 17:32 #4#3 genialtdet er lige det jeg har brug for. Kan du poste scriptet i morgen? det skal hente alle .txt filer i en remote mappe, gemme dem lokalt og derefter flytte dem til en remote under mappe.
Hvorfor lad være ???
31/10/2010 kl. 19:25 #5#4
Skal se om jeg husker det. Min hukommelse er ikke hvad den har væretDog tror jeg ikke det er optimalt at smide ‘koden’ her, da det samlede script fylder ret meget.
Så må finde ud af noget andet der.
Kan ikke huske om jeg fik lavet download delen færdig (skiftede over til c#, til det formål det skulle bruges til). Men burde
være nemt at fikse så den del også virker.O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
31/10/2010 kl. 20:34 #6#0
Har lige fikset scriptet til dig.
Men, som det er nu, fungerer det kun med den samme ftp server (altså ikke downloade fra en ftp server, og uploade til en anden. Kan dog fikses)O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
31/10/2010 kl. 21:38 #7#5 takker for indsatsen men har fundet ud af det.
Hvis der andre der har brug for noget lign. er scriptet her.downloader alle filer i REMOTEPATH til LOCALFILE og uploader alle file fra LOCALFILE til REMOTEPATHDONE ag sletter så alle filer i REMOTEPATH.
@echo off
SET SERVER=xxxx
SET USERNAME=xxxxx
SET PASSWORD=xxxxx
SET LOCALFILE=C:\ship\
SET REMOTEPATH=/shipfiles
SET REMOTEPATHDONE=/shipfiles/done
SET REMOTEFILE=*.txt
SET TEMPFILE=$temp.txtcd %LOCALFILE%
echo open %SERVER% >%TEMPFILE%
echo %USERNAME%>>%TEMPFILE%
echo %PASSWORD%>>%TEMPFILE%
echo bin >>%TEMPFILE%
echo cd %REMOTEPATH% >>%TEMPFILE%
echo prompt >>%TEMPFILE%
echo mget %REMOTEFILE% >>%TEMPFILE%
echo cd %REMOTEPATHDONE% >>%TEMPFILE%
echo mput %REMOTEFILE% >>%TEMPFILE%
echo cd %REMOTEPATH% >>%TEMPFILE%
echo mdelete %REMOTEFILE% >>%TEMPFILE%
echo bye >>%TEMPFILE%
ftp -s:c:\ship\$temp.txttHvorfor lad være ???
31/10/2010 kl. 21:41 #8#6 kunne godt tænke mig at se scriptet alligevel da det jeg har fundet ud af ikke er 100% ok f.eks det er lat i mappen der bliver downloaded og ikke kun txt filerne og det samme gælder med upload til en anden mappe
Hvorfor lad være ???
31/10/2010 kl. 21:56 #9prøver smide det her, men ved ikke hvor kønt det bliver
O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
31/10/2010 kl. 21:57 #10@echo OFF
::******************************** Can change these
Set RemoteFolder1=remote download folder
Set RemoteFolder2=remote upload folder
Set LocalFolder=local folder
Set RemoteHost=server address
Set User=login
Set Pass=pass
Set Extension=extension::******************************** Dont mess with these tho
Set FindStrArgs=/E /C:%Extension%
Set TimeNow=%time%
Set TimeNow=%TimeNow:,=%
Set TimeNow=%TimeNow:.=%
Set TimeNow=%TimeNow::=%
Set TimeNow=%TimeNow: =%
Set TempScript=%TimeNow%.ftp
Set TempScript2=%TimeNow%2.ftp
Set LogFil=ftpscriptlog.log
Set “FileList=”
Set “GetStr=”
Set PrefetchFil=%TimeNow%.raw
Set PendingFiles=0
GOTO Start::******************************** Init temp script
:Init
>>%TempScript% ECHO %User%
>>%TempScript% ECHO %Pass%
>>%TempScript% ECHO cd %RemoteFolder1%
Exit /b:Init2
>>%TempScript2% ECHO %User%
>>%TempScript2% ECHO %Pass%
>>%TempScript2% ECHO cd %RemoteFolder2%
Exit /b:PrefetchFiles
>>%PrefetchFil% ECHO %User%
>>%PrefetchFil% ECHO %Pass%
>>%PrefetchFil% ECHO cd %RemoteFolder1%
>>%PrefetchFil% ECHO ls *.%Extension% nlist
>>%PrefetchFil% ECHO disconnect
>>%PrefetchFil% ECHO bye
ftp -v -s:%PrefetchFil% %RemoteHost%
TYPE NUL >%PrefetchFil%
DEL %PrefetchFil%
EXIT/b:PrefetchFiles2
dir /b %LocalFolder%\*.%Extension% > ulist
EXIT/b:Start
::******************************** ConditionsCall :Main
GOTO End
::******************************** Get files
:Main
rem *******************************
rem Download files from FTP
rem *******************************
Call :PrefetchFiles
Call :Init
Set “FileList=”
>>%LogFil% ECHO Henter filer: %time% / %date%
>>%TempScript% ECHO lcd %LocalFolder%
>>%TempScript% ECHO binary
>>%TempScript% ECHO prompt n
Set count=0
FOR /F “eol= tokens=* delims=usebackq” %%A In (‘”type nlist”‘) Do (
Set GetStr=%%A
Call :CheckFil
)IF %count% gtr 0 (
Set PendingFiles=1
>>%TempScript% ECHO mget %FileList%
Set “FileList=”
Set count=0
)>>%TempScript% ECHO disconnect
>>%TempScript% ECHO bye
IF %PendingFiles%==1 (
ftp -v -s:%TempScript% %RemoteHost%
)Set “Pendingfiles=”
Set “count=”
Set “GetStr=”rem *******************************
rem Upload files to FTP
rem *******************************
Call :PrefetchFiles2
Call :Init2
Set “FileList=”
>>%LogFil% ECHO Uploading files: %time% / %date%
>>%TempScript2% ECHO lcd %LocalFolder%
>>%TempScript2% ECHO binary
>>%TempScript2% ECHO prompt n
Set count=0
FOR /F “eol= tokens=* delims=usebackq” %%A In (‘”type ulist”‘) Do (
Set GetStr=%%A
Call :CheckFil2
)IF %count% gtr 0 (
Set PendingFiles=1
>>%TempScript2% ECHO mput %FileList%
Set “FileList=”
Set count=0
)>>%TempScript2% ECHO disconnect
>>%TempScript2% ECHO bye
IF %PendingFiles%==1 (
ftp -v -s:%TempScript2% %RemoteHost%
)GOTO FinishTransfer
:CheckFil
rem ********************** Block Start
rem Leave out this block if you dont
rem care about existing local files
rem getting overwritten
IF EXIST “%LocalFolder%\%GetStr%” (
Goto CheckDone
)
rem ********************** Block ENDif %count%==3 (
Set PendingFiles=1>>%TempScript% ECHO mget %FileList%
Set “FileList=”
Set count=0
)
Set /a count=count+1
Set FileList=%FileList% “%GetStr%”:CheckDone
EXIT /b:CheckFil2
if %count%==3 (
Set PendingFiles=1>>%TempScript2% ECHO mput %FileList%
Set “FileList=”
Set count=0
)
Set /a count=count+1
Set FileList=%FileList% “%GetStr%”:CheckDone
EXIT /b::******************************** END
:FinishTransfer>>%LogFil% ECHO Kørsel afsluttet!: %time% / %date%
>>%LogFil% ECHO
TYPE NUL >%TempScript%
TYPE NUL >%TempScript2%
DEL %TempScript%
DEL %TempScript2%:End
O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
01/11/2010 kl. 20:52 #11#0
fik du det til at fungere?O death, with thy ebony cloak sublime. How abstract thy harvest rose doth fall. Consigned to the flames of woe in sweet modesty. I renounce myself from the everdawn.
-
ForfatterKommentarer
- Du skal være logget ind for at kommentere på dette indlæg.
























