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?
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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 194860
Url: https://administrator.de/contentid/194860
Printed on: April 19, 2024 at 20:04 o'clock
4 Comments
Latest comment
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