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-Key: 665619

Url: https://administrator.de/contentid/665619

Printed on: April 24, 2024 at 18:04 o'clock

Member: TK1987
TK1987 Apr 11, 2021 at 12:03:36 (UTC)
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
Member: newline
newline Apr 11, 2021 at 14:04:20 (UTC)
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
Member: em-pie
em-pie Apr 11, 2021 at 15:09:59 (UTC)
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
Member: newline
newline Apr 11, 2021 at 16:54:25 (UTC)
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
Mitglied: 148121
148121 Apr 12, 2021 updated at 08:18:39 (UTC)
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.
Member: newline
newline Apr 12, 2021 at 11:21:09 (UTC)
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
Mitglied: 148121
148121 Apr 12, 2021 at 12:13:13 (UTC)
Goto Top
Zitat von @newline:
Klappt hervorragend, alle drei Bedingungen erfüllt!
Überraschung, was zum spielen und Schokolade face-big-smile.