PowerShell: Get-ChildItem stürzt ab

OP #6340537
Lesenswert?

Ich versuche, per PowerShell die Laufzeiten von Videos abzufragen.
1
$path = "C:\Users\rudi\videos\xx",
2
$filter = "*.mp4"
3

4
Get-ChildItem -LiteralPath $targetDirectory -Include $filter -File -Recurse

Das Verzeichnis C:\Users\rudi\videos\xx enthält 4 mp4-Dateien.

Wenn ich den Code in der PowerShell ISE ablaufen lasse, entsteht 
folgende Ausgabe:
1
    Verzeichnis: C:\Users\rudi\videos\xx
2

3

4
Mode                LastWriteTime         Length Name                                                                                                                    
5
----                -------------         ------ ----                                                                                                                    
6
-a----       16.07.2020     10:43       84321718 160618-su294-2228begerenswaardig.mp4                                                                                    
7
-a----       16.07.2020     10:43         205799 anim_screenslide.mp4                                                                                                    
8
-a----       16.07.2020     10:43      160008019 cat-vs-u-20180326-short_ccth.mp4                                                                                        
9
-a----       16.07.2020     10:43        6723899 waldkauz-augen.1492555539.mp4                                                                                           
10
Get-ChildItem : Der Pfad "C:\Users\rudi\*.mp4" kann nicht gefunden werden, da er nicht vorhanden ist.
11
In C:\Users\rudi\Desktop\clip-duration.ps1:10 Zeichen:5
12
+     Get-ChildItem -LiteralPath $targetDirectory -Include $filter -Fil ...
13
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
    + CategoryInfo          : ObjectNotFound: (C:\Users\rudi\*.mp4:String) [Get-ChildItem], ItemNotFoundException
15
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

Offenbar versucht Get-ChildItem auch noch C:\Users\rudi zu iterieren und 
fällt dabei auf die Fresse.

Warum? Wie kann man diesen Unsinn abstellen?
Beitrag #6340565 wurde von einem Moderator gelöscht.
OP #6340655
Lesenswert?

Was ich nicht verstehe:
1
param (
2
    [string]$path = "C:\Users\rudi\videos\xx",
3
    [string]$filter = "*.mp4"
4
)
5

6
Function Get-VideoDetails([string]$targetDirectory, [string]$filter) {
7
    echo $targetDirectory
8
    echo $filter
9
}
10

11
echo $path
12
echo $filter
13
Get-VideoDetails($path, $filter)

Warum ist die Ausgabe
1
C:\Users\rudi\videos\xx
2
*.mp4
3
C:\Users\rudi\videos\xx *.mp4
?

In der Funktion hat $targetDirectory den Wert
   "C:\Users\rudi\videos\xx *.mp4"
während $filter leer ist.
Gast #6340806
Lesenswert?

Weil du ein Array mit den Werten in $path und $filter als Wert für den 
Parameter $targetDirectory übergibst.

Korrekt müsste der Funktionsaufruf folgendermaßen aussehen:
1
Get-VideoDetails $path $filter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren