newline
Goto Top

PS: Dateien bzw. Ordnerinhalt löschen

Hallo zusammen,

Ich habe mir ein Batch-Script gebaut zum Download von Dateien aus meinem Webverzeichnis:
:: FTP Download
set "s-sv=server"  
set "s-us=user"  
set "s-pw=passwort"  
powershell.exe -EP ByPass -Command "$client = new-object System.Net.WebClient; $client.Credentials = New-Object System.Net.NetworkCredential '%s-us%','%s-pw%';$client.DownloadFile('ftp://%s-us%@%s-sv%/verzeichnis/1001.csv','1001.csv')"  

Nun habe ich gedacht, über diesen Weg auch einzelne Dateien, bzw. der Ordnerinhalt löschen zu können. Leider funktioniert das so nicht, daher erhoffe ich mir Hilfe bei meinem Code.

Beispiel Verzeichnis:
1001.csv
1002.csv
...
need.csv
...

Drei Möglichkeiten wären gut:
1. Eine definierte Datei löschen (z.B. need.csv)
2. Bestimmte Dateien löschen (z.B. 100*.csv)
3. Alle Dateien des Ordners (*.*)

Mein gescheiterter Lösungsversuch für Pkt. 3:
:: FTP leeren
set "s-sv=server"  
set "s-us=user"  
set "s-pw=passwort"  
powershell.exe -EP ByPass -Command "$client = new-object System.Net.WebClient; $client.Credentials = New-Object System.Net.NetworkCredential '%s-us%','%s-pw%';$Remove-Item('ftp://%s-us%@%s-sv%/verzeichnis/*.*','*.*')"  

Es folgt folgende Fehlermeldung:
In Zeile:1 Zeichen:143
+ ... .NetworkCredential 's-pw','s-us';$Remove-Item('ftp:// ...  
+                                                             ~~~~~
Unerwartetes Token "-Item" in Ausdruck oder Anweisung.  
In Zeile:1 Zeichen:148
+ ... NetworkCredential  's-pw','s-us';$Remove-Item('ftp://f ...  
+                                                                 ~
Unerwartetes Token "(" in Ausdruck oder Anweisung.  
    + CategoryInfo          : ParserError: (:) , ParentContainsErrorRecordException
    + FullyQualifiedErrorId : UnexpectedToken

newline

Content-ID: 665619

Url: https://administrator.de/forum/ps-dateien-bzw-ordnerinhalt-loeschen-665619.html

Ausgedruckt am: 13.03.2025 um 16:03 Uhr

TK1987
TK1987 11.04.2021 um 14:03:36 Uhr
Goto Top
Moin,

bin gerade nicht zuhause und kann daher nicht testen, aber das Dollarzeichen vor Remove-Item ist definitiv falsch und löst deinen Fehler aus.

Gruß Thomas
newline
newline 11.04.2021 um 16:04:20 Uhr
Goto Top
... nach dem Entfernen des Dollarzeichens löscht er mir alle Dateien auf meinem Desktop!
Auf dem Server passiert hingegen nix weiter face-sad
em-pie
em-pie 11.04.2021 um 17:09:59 Uhr
Goto Top
Moin,

warum nicht direkt mit PS umsetzen, statt so einen Batch-Powershell-Mix zu nutzen:
https://stackoverflow.com/questions/49671897/deleting-file-from-ftp-serv ...

Gruß
em-pie
newline
newline 11.04.2021 um 18:54:25 Uhr
Goto Top
... hast du natürlich recht! Wobei ich dann meinen Down- und Upload wieder anpassen müsste 😂.
Ich glaube ich löse das damit, dass ich die vorhandenen Dateien einfach überschreibe - dann bleiben sie halt dort, wobei sie so immer als vorhanden angezeigt werden ...
Naja, trotzdem danke euch face-smile
148121
148121 12.04.2021 aktualisiert um 10:18:39 Uhr
Goto Top
FTP File mit oder ohne Wildcards löschen, kein Problem ....
powershell -EP ByPass -C "$request = [System.Net.FtpWebRequest]::Create('ftp://blablub.de/ordner/datei.txt');$request.Method = [System.Net.WebRequestMethods+FTP]::DeleteFile;$request.Credentials = New-Object System.Net.NetworkCredential('USERNAME','PASSWORD');$response = [System.Net.FtpWebResponse]$request.GetResponse();$result = $response.StatusDescription;$response.Close();return $result"  

Gruß w.
newline
newline 12.04.2021 um 13:21:09 Uhr
Goto Top
Hallo warranty,

führe hier gerade Freudensprünge aus: GENIAL
Klappt hervorragend, alle drei Bedingungen erfüllt!

Ganz herzlichen Dank für die Weiterarbeit, hatte schon versucht mich mit der vermeintlichen Nichtfunktion abzufinden ...

Hast jemanden glücklich gemacht 😘!

newline
148121
148121 12.04.2021 um 14:13:13 Uhr
Goto Top
Zitat von @newline:
Klappt hervorragend, alle drei Bedingungen erfüllt!
Überraschung, was zum spielen und Schokolade face-big-smile.