hobbes
Goto Top

Einige Zeilen einer Batch-Datei an ein Programm senden?

Ich möchte in einer .cmd-Datei ftp öffnen und einige Zeilen an ftp senden, OHNE eine zweite ftp-Batch-Datei zu benutzen.

Hallo,

mein Problem ist: Ich möchte eine Batch-Datei haben, die in ein Verzeichnis wechselt, dort ftp aufruft und eine Liste von Befehlen abbarbeiten lässt.

Mit zwei Dateien wäre es kein Problem:

my-ftp.cmd:
@echo off
cd \downloads
ftp -s:ftp-command.txt
echo.
echo Fertig. Zum Schließen des Fensters beliebige Taste druecken.
echo.
pause

ftp-command.txt:
open meinftpserver
meinuser
meinpw
cd meinverzeichnis
get meinedatei
bye

Ich möchte aber nur eine Datei haben und erinnere mich dunkel, dass man gewisse Bereiche einer Datei (bis zu einer Marke?) an eine andere Anwendung schicken kann.
Oder hab ich da die Bash im Kopf? Es würde dann etwa so aussehen:

my-ftp-complete.cmd:
@echo off
cd \downloads
cat [alles bis EOF] >ftp ( oder andersrum? ftp < [alles bis EOF] )
open meinftpserver
meinuser
meinpw
cd meinverzeichnis
get meinedatei
bye
EOF

echo.
echo Fertig.
echo
pause

Kann mir jemand sagen, ob (und wenn ja, wie) das geht? Bzw. weiß einer, dass es nicht geht und ich um die zweite Datei nicht herumkomme?

Vielen Dank schon mal,
hobbes

Content-Key: 38181

Url: https://administrator.de/contentid/38181

Printed on: April 23, 2024 at 10:04 o'clock

Member: Biber
Biber Aug 17, 2006 at 10:47:38 (UTC)
Goto Top
Moin hobbes,

den cat-Befehl gibt es leider nur in der Bash (oder unter Windows als portiertes Freeware-Utility.

Workaround:
Die zweite Datei (die eigentlich schon nötig ist) dynamisch aus dem einen batch erzeugen.
::--- snipp my-ftp-complete.cmd:
@echo off % setlocal
set ftpSkript=%temp%\ftpskript.xyz
cd \downloads
:: so halt nicht leider: cat [alles bis EOF] >ftp ( oder andersrum? ftp < [alles bis EOF] )
echo open meinftpserver >%ftpscript%
echo meinuser >>%ftpscript%
echo meinpw >>%ftpscript%
echo cd meinverzeichnis  >>%ftpscript%
echo get meinedatei  >>%ftpscript%
echo bye >>%ftpscript%
:: EOF
ftp <%ftpscript%
del  >%ftpscript%
echo.
echo Fertig.
echo
pause

...so in etwa wäre eine ungetestete Skizze.

Gruß
Biber
Member: hobbes
hobbes Aug 17, 2006 at 11:42:35 (UTC)
Goto Top
Moin Biber,

...so in etwa wäre eine ungetestete


herzlichen Dank für die schnelle Antwort. Tja, da muss ich mal sehen, ob mir das mehr behagt als eine zweite Datei rumliegen zu haben.

Wobei mir dabei grad einfällt ... danke für die Anregung, so gehts vielleicht: Ich pack einfach beides, FTP und CMD-Code in eine Datei und gebe sie dem ftp mit. Oben ein GOTO rein, welches von ftp nicht erkannt und somit ignoriert wird, und beide bekommen "ihren" Anteil.

OK, hübsch ist das auch nicht, aber ich habe es in einer Datei und es ist ein klein wenig lesbarer.

my-ftp.cmd:
goto start

open meinftpserver
meinuser
meinpw
cd meinverzeichnis
get meinedatei
bye

:start
@echo off
cd \downloads
ftp -s:my-ftp.cmd
echo.
echo Fertig. Zum Schließen des Fensters beliebige Taste druecken.
echo.
pause


Gruß,
hobbes