Pagina 1 van 1

Command Line FTP

Geplaatst: 12 dec 2004, 13:37
door Stino
Ik wil graag een Batch File maken om een map op mijn systeem automatisch op een ander systeem te zetten via FTP.

Code: Selecteer alles

ftp -s:script.txt

Code: Selecteer alles

[b]script.txt:[/b]
open 192.168.0.133
username
password
cd bck
lcd i:\
mput *.*
bye
Momenteel moet ik bij elke file nog confirmeren en kan ik geen hele Folders/Subfolders uploaden.
Iemand met een oplossing voor dit probleem?

Stino...

Geplaatst: 12 dec 2004, 13:51
door kikker46
Op deze site staat er http://www.robvanderwoude.com/index.html -i toevoegen voor Turns off interactive prompting during multiple file transfers.

Misschien dat dat helpt.

Mvg,

Kikker46

Geplaatst: 12 dec 2004, 16:02
door meon
Mja, batch ftp'en ondersteunt inderdaad geen submappen. FTP onder linux ook niet, ncftp dan weer wél. Misschien dat een windows-variant dat ook kan? De standaard microsoft ftp.exe kan het in elk geval niet (dat ding kan eigenlijk enkel de standaard ftp-commando's. Als je al speciale dingen wilt doen moet je met het literal-commando al dingen gaan forceren en zo ... kvind het niet zo handig als een grafische client ;))

Nu ik het net over grafische client heb ... Cute FTP Pro ondersteunt vbs-scripts ... misschien dat je het op die manier kan oplossen?

Geplaatst: 12 dec 2004, 16:32
door Stino
Aha, bedankt Meon en Kikker, kzal het in het vervolg met CuteFTP Pro oplossen, werkt zeer vlotjes!

Stino...

Re: Command Line FTP

Geplaatst: 13 dec 2004, 09:38
door ubremoved_539
Stino schreef:Momenteel moet ik bij elke file nog confirmeren en kan ik geen hele Folders/Subfolders uploaden.
Iemand met een oplossing voor dit probleem?
Dmv. het PROMPT TP-commando kan je de prompting toggelen tussen aan en uit. Voor het overige, in XP kan je gewoon een FTP site definieren, en dan hebje gewoon drag en drop, inclusief sub directories.

Geplaatst: 12 jan 2005, 01:12
door Belg
Je kunt dit via batch doen in XP door elke file apart te uploaden. Dan kun je het ook meteen schedulen op een eenvoudige manier.

Probeer het volgende batch ding eens:

Code: Selecteer alles

@echo off
for /r "I:\" %%a in (*.*) do call :upload "%%a"
Echo Upload Complete
goto :eof

:upload
for %%a in (%1) do set size=%%~za
echo Uploading "%1" (%size% bytes).......
echo.
echo open 192.168.0.133>upload.txt
echo username>>upload.txt
echo password>>upload.txt
echo cd bck>>upload.txt
echo put "%1">>upload.txt
echo bye>>upload.txt
ftp -s upload.txt
del upload.txt >nul
echo.
echo.
goto :eof

Ik realiseer me net dat dit voor nogal wat problemen kan zorgen bij lange file namen..... Never mind.. Was maar een idee.

Geplaatst: 12 jan 2005, 09:49
door Styno
Stino,

zet in je batch file na password het commando 'prompt' om de confirmatie af te zetten.

(mischien ook eens zien of je 'bin' wil gebruiken om binary files over te zetten. Ik weet niet of dit default is.)

Geplaatst: 12 jan 2005, 17:48
door Stino
Heel erg bedankt Landgenoot en Naamgenoot :lol:
Met Belg zijn oplossing upload het script inderdaad wel alle bestand, ook uit de submappen, maar dit alles in dezelfde directory. Ik heb een beetje lopen zoeken, maar verder geraak ik niet. Had geprobeerd: dir /s | find "<DIR>" > mappen.txt maar om dan de mapnamen uit dat bestand te kunnen halen. Dan had ik ook nog dit gevonden: dir /s /b maar daar geraak ik ook niet verder mee. :-s
Leuke invalshoek Belg ;-)

Bij de oplossing van Styno wordt er inderdaad geen bevestiging meer gevraagd, maar wil ie nog altijd geen mappen uploaden.

Stino...

Geplaatst: 12 jan 2005, 18:26
door Styno
Stino schreef:Had geprobeerd: dir /s | find "<DIR>" > mappen.txt maar om dan de mapnamen uit dat bestand te kunnen halen.
zoiets? (dit is voor een .bat file)

Code: Selecteer alles

@echo off
SETLOCAL

set TOOLPATH=c:\mytools\
set CONFIGFILE_DIRS=mappen.txt

FOR /F %%G in (%TOOLPATH%\%CONFIGFILE_DIRS%) do (
echo -------------------------------
echo Processing files in dir: %%G

>> hier je ftp << 

echo -------------------------------
)

ENDLOCAL
echo on