none
Get-ChildItem Bug RRS feed

  • Frage

  • Hallo zusammen,

    kann es sein dass Powershell 2.0 ein Bug hat.

    Wenn es in ein Ordner nur ein Datei hat, wird es nicht aufgelistet? Auch $Files.Count liefert "NULL"

    $Files = Get-ChildItem $SourceFolder

    if ($Files.Count -gt 0){
     foreach($File in $Files){
      Write-Host $File.FullName.ToString()
      Write-Host $File.CreationTime.ToString()
     }
     
    }

    Montag, 28. März 2016 13:35

Antworten

  • .Count ist eine Eigenschaft von Arrays. Ein Array wird von get-childitem in PoSh v2  erst ab 2 Objekten gebildet. Du kannst das Problem umgehen indem du ein Array erzwingst:
     
    $Files = @(Get-ChildItem $SourceFolder)
     
    So hast du immer ein Ergebnis, auch bei keiner (0) oder nur einer Datei (1).
    Grüße, Denniver

    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.


    Mittwoch, 30. März 2016 17:54
    Moderator

Alle Antworten

  • Hallo,

    wenn in einem Ordner mehrere Dateien enthalten sind, ist die Variable $Files ein Array. Bei nur einer Datei ist die Variable vom Typ System.IO.FileSystemInfo, bei diesem Typ gibt es anscheinend das Property Count nicht!

    So, sollte es auch mit einer Datei funktionieren:

    $Files = Get-ChildItem $SourceFolder
    if ( ( $Files | Measure-Object).Count -gt 0){
    	foreach($File in $Files){
    		Write-Host $File.FullName.ToString()
    		Write-Host $File.CreationTime.ToString()
    	}
    }

    Lg

    Dienstag, 29. März 2016 10:03
  • .Count ist eine Eigenschaft von Arrays. Ein Array wird von get-childitem in PoSh v2  erst ab 2 Objekten gebildet. Du kannst das Problem umgehen indem du ein Array erzwingst:
     
    $Files = @(Get-ChildItem $SourceFolder)
     
    So hast du immer ein Ergebnis, auch bei keiner (0) oder nur einer Datei (1).
    Grüße, Denniver

    Blog: http://bytecookie.wordpress.com

    Kostenloser Powershell Snippet Manager v4: Link ! Neue Version !
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.


    Mittwoch, 30. März 2016 17:54
    Moderator