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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 38181
Url: https://administrator.de/forum/einige-zeilen-einer-batch-datei-an-ein-programm-senden-38181.html
Ausgedruckt am: 29.04.2025 um 12:04 Uhr
2 Kommentare
Neuester Kommentar
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.
...so in etwa wäre eine ungetestete Skizze.
Gruß
Biber
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