peter5
Goto Top

Fehler bei WINSCP-Skript

Ich möchte ein komplettes Verzeichnis auf einem Server mit einer Batch-Datei löschen.

Der Aufruf über
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log=%log% /ini=nul ^
/command ^
"open ftp://User:Password@MyServer.de" ^
"rm /Folder1/Folder2/*.*" ^
"close" ^
"exit"
funktioniert, ist aber bei sehr großen Verzeichnissen mit mehreren 1000 Einträgen sehr langsam.

Ich möchte daher das komplette Verzeichnis 'in einem Rutsch' ohne Nachfrage löschen.

Der Aufruf über
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log=%log% /ini=nul ^
/command ^
"open ftp://User:Password@MyServer.de" ^
"rm -rf /folder1/folder2" ^
"close" ^
"exit"
bringt aber den Fehler: Unbekannter Schalter „rf“

Viele Grüße, Peter

Content-ID: 5991275453

Url: https://administrator.de/forum/fehler-bei-winscp-skript-5991275453.html

Ausgedruckt am: 06.04.2025 um 20:04 Uhr

godlie
godlie 15.02.2023 um 15:16:28 Uhr
Goto Top
Hallo,

du willst dir den rmdir command ansehen face-smile https://winscp.net/eng/docs/scriptcommand_rmdir

grüße
Peter5
Peter5 15.02.2023 um 15:24:42 Uhr
Goto Top
Hallo godlie,

'rmdir' löscht doch nur leere verzeichnisse.

VG, Peter
colinardo
colinardo 15.02.2023 aktualisiert um 15:58:20 Uhr
Goto Top
Servus @Peter5,
lass das -rm weg der rm WinSCP-Befehl löscht alles untergeordnete automatisch bei Angabe eines Verzeichnisses.
Also
1
"rm /folder1/folder2"  
Des weiteren sollte man bei automatisierten Skripts immer die Option
1
"option confirm off"  
setzen, damit eventuelle Nachfragen automatisch beantwortet werden. Diese Anweisung sollte natürlich vor den anderen Befehlen im Winscp command stehen.

Grüße Uwe
TK1987
TK1987 15.02.2023 um 15:45:29 Uhr
Goto Top
Moin,

WinSCP - Quick Deleting

Gruß Thomas
Peter5
Peter5 15.02.2023 um 17:20:45 Uhr
Goto Top
@uwe
"rm /folder1/folder2/" funktioniert natürlich, aber bei zig-Tausend Dateien dauert das löschen eben sehr lange.

@thomas
ja. laut Beschreibung soll zum Löschen von "sehr großen" Verzeichnissen "rm -f -r" verwendet werden. Ich erhalte hier aber immer den Fehler: Unbekannter Schalter „f“ bzw. Unbekannter Schalter „r“

VG, Peter
colinardo
Lösung colinardo 15.02.2023 aktualisiert um 21:35:04 Uhr
Goto Top
Zitat von @Peter5:

@uwe
"rm /folder1/folder2/" funktioniert natürlich, aber bei zig-Tausend Dateien dauert das löschen eben sehr lange.
Das ist leider dem FTP-Protokoll an sich geschuldet. Bei FTP muss der Client zwingend jeden einzelnen Vorgang über den Control-Channel anstoßen und bestätigen lassen das dauert eben. Plain FTP wurde dafür nicht ausgelegt.
https://webmasters.stackexchange.com/questions/10921/quickly-deleting-lo ...
@thomas
ja. laut Beschreibung soll zum Löschen von "sehr großen" Verzeichnissen "rm -f -r" verwendet werden. Ich erhalte hier aber immer den Fehler: Unbekannter Schalter „f“ bzw. Unbekannter Schalter „r“
Das geht nur bei SSH(SFTP) Zugriff bei dem man echten Shellzugriff hat.

Als Workaround benennst du den Ordner bspw. statt zu Löschen in "junk" um und lässt diesen über einen Cron-Job beim Hoster vor Ort löschen, oder machst es wie in deinem letzten Beitrag angedacht über das Antriggern einer URL mit einem PHP-Skript dahinter.

Aber mal ehrlich, welcher trashige Hoster bietet 2023 nur plain FTP ohne Verschlüsselung an?!
Da kannst du ja gleich den Offenbarungseid leisten, wenn jeder Himpelhuber auf der Route das Passwort im Klartext mitlesen kann ... 🤔👎
Peter5
Peter5 16.02.2023 um 20:39:38 Uhr
Goto Top
Vielen Dank Uwe, für die schnelle und ausführliche Antwort.

Den Lösungsvorschlag mit dem PHP-Skript finde ich gut und werde ich angehen.

Mein Hoster bietet kein SSH und kein SFTP an, dafür FTPS.

Viele Grüße, Peter