Forum: PC-Programmierung PowerShell: Get-ChildItem stürzt ab


von Uhu U. (uhu)


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?

von Helmut H. (helmuth)


Lesenswert?

Uhu U. schrieb:
> Warum?
Weil es der Benutzer so gewünscht hat:  The Recurse parameter gets items 
from the Path directory and its subdirectories.

Beitrag #6340565 wurde vom Autor gelöscht.
von Uhu U. (uhu)


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.

von Frank (Gast)


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

von Uhu U. (uhu)


Lesenswert?

Danke für den Hinweis.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.