Per ftp dateien mit einem bestimmten anfang löschen
ich bin noch azubi^^
Guten Morgen zusammen..
Ich habe folgendes Problem:
Ich würde gerne per script eine bestimmte Datei aus einem FTP verzeichnis löschen. Leider weiß ich nciht wie ich das bewerkstelligen soll.
Folgendes im Detail.
User meldet sich an :
Script schreibt eine Datei mit %host%__%username%.txt
diese Datei wird per ftp auf den Server hochgeladen.
beim abmelden wird die datei %host%__%username%.txt gelöscht
und durch %host%.txt "ersetzt"
diese wird dann auch wieder auf den Server hochgeladen.
Allerdings habe ich dann auf dem Server 2 Dateien:
%host%__%username%.txt
%host%.txt
Da ich dies auf mehreren VMs ausführen möchte, kann ich nicht einfach
nach dem namen der Datei suchen...
ich muss es als Parameter übergeben
der code in welchen ich den Hostnamen speicher sieht so aus:
hostname.exe > __t.tmp
SET /p host=<__t.tmp
dann habe ich den Parameter in der Variable %host%
und nun komm ich zum Problem
per FTP kann ich nicht nach:
delete %host%*.txt löschen
oder geht des doch?
Guten Morgen zusammen..
Ich habe folgendes Problem:
Ich würde gerne per script eine bestimmte Datei aus einem FTP verzeichnis löschen. Leider weiß ich nciht wie ich das bewerkstelligen soll.
Folgendes im Detail.
User meldet sich an :
Script schreibt eine Datei mit %host%__%username%.txt
diese Datei wird per ftp auf den Server hochgeladen.
beim abmelden wird die datei %host%__%username%.txt gelöscht
und durch %host%.txt "ersetzt"
diese wird dann auch wieder auf den Server hochgeladen.
Allerdings habe ich dann auf dem Server 2 Dateien:
%host%__%username%.txt
%host%.txt
Da ich dies auf mehreren VMs ausführen möchte, kann ich nicht einfach
nach dem namen der Datei suchen...
ich muss es als Parameter übergeben
der code in welchen ich den Hostnamen speicher sieht so aus:
hostname.exe > __t.tmp
SET /p host=<__t.tmp
dann habe ich den Parameter in der Variable %host%
und nun komm ich zum Problem
per FTP kann ich nicht nach:
delete %host%*.txt löschen
oder geht des doch?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194860
Url: https://administrator.de/forum/per-ftp-dateien-mit-einem-bestimmten-anfang-loeschen-194860.html
Ausgedruckt am: 03.04.2025 um 10:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Dpole86.
Als erstes wirst du vermutlich mit deiner hostname.exe wieder ohne temporäre Datei auskommen, á la
Aber das beantwortet nicht deine Frage.
(Davon ausgehend dass du mit dem Windows FTP Tool arbeiten willst ...) Du musst strikt zwischen Batch und dem FTP-Script unterscheiden. Im FTP-Script werden Umgebungsvariablen nicht expandiert, sondern als literaler Ausdruck angenommen. Das heißt, wenn du mit Variablen arbeiten willst/musst, dann musst du per Batch ein FTP-Script erstellen, bei dem, während der Umleitung in das Script, Umgebungsvariablen zum Wert expandiert werden.
Das Ganze könnte etwa so aussehen (ungetestet):
Versteht sich, dass du die Pünktchen durch reale Werte ersetzen musst. Ob du ftpRemoteDir (und das zugehöride
Grüße
rubberman
[OT]
Zu der Sorte Menschen gehöre ich auch
[/OT]
Als erstes wirst du vermutlich mit deiner hostname.exe wieder ohne temporäre Datei auskommen, á la
for /f "delims=" %%i in ('hostname.exe') do set "host=%%i"
Aber das beantwortet nicht deine Frage.
(Davon ausgehend dass du mit dem Windows FTP Tool arbeiten willst ...) Du musst strikt zwischen Batch und dem FTP-Script unterscheiden. Im FTP-Script werden Umgebungsvariablen nicht expandiert, sondern als literaler Ausdruck angenommen. Das heißt, wenn du mit Variablen arbeiten willst/musst, dann musst du per Batch ein FTP-Script erstellen, bei dem, während der Umleitung in das Script, Umgebungsvariablen zum Wert expandiert werden.
Das Ganze könnte etwa so aussehen (ungetestet):
@echo off &setlocal
for /f "delims=" %%i in ('hostname.exe') do set "host=%%i"
set "ftpUser=..."
set "ftpPassword=..."
set "ftpRemoteDir=..."
>"test.ftp" (
echo open %host%
echo %ftpUser%
echo %ftpPassword%
echo cd "%ftpRemoteDir%"
echo delete "%host%*.txt"
echo disconnect
echo bye
)
ftp -i -s:"test.ftp"
:: del "test.ftp"
cd
) benötigst, musst du selbst wissen.Grüße
rubberman
[OT]
Guten Morgen zusammen..
... um 13:06 UhrZu der Sorte Menschen gehöre ich auch
[/OT]
Hi Dpole86.
Keine Ahnung. Vermutlich hast du auf deinem Rechner eine weitere ftp.exe (oder ftp.bat oder eine andere ausführbare Datei namens ftp) und diese ist entweder im selben Verzeichnis oder befindet sich in der Path-Umgebung.
Rufe ftp.exe mal mit vollem Name auf:
Grüße
rubberman
Keine Ahnung. Vermutlich hast du auf deinem Rechner eine weitere ftp.exe (oder ftp.bat oder eine andere ausführbare Datei namens ftp) und diese ist entweder im selben Verzeichnis oder befindet sich in der Path-Umgebung.
Rufe ftp.exe mal mit vollem Name auf:
%SystemRoot%\system32\ftp.exe
Grüße
rubberman