springstil
Goto Top

Wildcard im Dateinamen in Powershell

Hallo zusammen,

ich hab ein kleines Problem mit Finden einer Datei in Powershell.

Und zwar habe ich 2 Excel Dateien die ich in CSV umwandeln möchte. Einzeln Funktioniert das auch ganz gut... Allerdings habe ich 2 Dateien in dem Ordner. Der Name der Datei ist beispielsweise

DE2 Shipment Profile Report With Container Information One-To-One Wednesday, 20 April 2022 13_50_00.XSLX
und
DE2 Transport Booking POD Report Wednesday, 20 April 2022 13_49_39.XLSX


nun versuche ich aber erst einmal NUR auf eine Datei zu zugreifen, das klappt aber nicht. Bisher hab ich es so versucht:

$Datei1 =  "C:\Users\USER\Desktop\DSV\DE2 Shipment Profile Report With Container Information*"  
$sourceFile = (Get-ChildItem  $Datei1 -Include *.xlsx)
$targetFile = 'C:\Users\USER\Desktop\DSV\DSVDaten1.csv'  

Vielleicht kann mir hier jemand den entscheidenden Tipp geben wie ich den wildcard richtig anwenden muss.

Content-ID: 2607233205

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

Ausgedruckt am: 24.11.2024 um 10:11 Uhr

colinardo
Lösung colinardo 26.04.2022 aktualisiert um 16:09:39 Uhr
Goto Top
Servus.
Viele Wege führen nach Rom, je nachdem was eben gewünscht ist.
$sourceFiles = Get-ChildItem -Path "C:\Users\USER\Desktop\DSV" -Filter "DE2 *.xlsx" -File  
$file1 = $sourceFiles.Fullname
Oder die erste Datei mit "DE Shipment"
$file1 = Get-ChildItem -Path "C:\Users\USER\Desktop\DSV" -Filter "DE2 Shipment*.xlsx" -File | select -F 1 -Expand Fullname  
Soll ich weiter machen oder ist da Prinzip jetzt klar?

Grüße Uwe

Powershell Leitfaden für Anfänger
Springstil
Springstil 26.04.2022 um 16:14:45 Uhr
Goto Top
Ich danke dir mal wieder Colinardo... An filter hab ich überhaupt nicht gedacht! Danke face-smile

Nach dem ich es ausprobieren wollte ist mir noch ein Fehler aufgefallen weswegen meine Variante wohl auch nicht funktioniert hat... Aber jetzt klappt es vielen dank dafür
colinardo
colinardo 26.04.2022 aktualisiert um 16:20:33 Uhr
Goto Top
Zitat von @Springstil:

Ich danke dir mal wieder Colinardo... An filter hab ich überhaupt nicht gedacht! Danke face-smile

Nach dem ich es ausprobieren wollte ist mir noch ein Fehler aufgefallen weswegen meine Variante wohl auch nicht funktioniert hat... Aber jetzt klappt es vielen dank dafür

Du musst nicht zwingend mit Filter arbeiten kannst auch problemlos mit -Include arbeiten musst dann aber beachten das beim Path ein Wildcard gesetzt werden muss wenn man nicht rekursiv sucht:
$sourceFiles = Get-ChildItem -Path "C:\Users\USER\Desktop\DSV\*" -Include "DE2 *.xlsx" -File  
$file1 = $sourceFiles.Fullname
-Filter ist nichts anderes als der letzte Teil von -Path man kann diesen also auch direkt in -Path einarbeiten ohne ihn separat aufführen zu müssen.