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

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

Printed on: April 26, 2024 at 14:04 o'clock

Member: colinardo
Solution colinardo Apr 26, 2022 updated at 14:09:39 (UTC)
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
Member: Springstil
Springstil Apr 26, 2022 at 14:14:45 (UTC)
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
Member: colinardo
colinardo Apr 26, 2022 updated at 14:20:33 (UTC)
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.