2017-11-03 1 views
0

Ich möchte eine CSV-Datei unter Windows   7 von PowerShell-Skript erstellen. Jetzt habe ichIn der CSV-Datei unter Windows 7 von PowerShell stecken

$dd = @(Get-Date -Format d) 
$report = @() 
$index = 0 
foreach ($Item in $dd) { 
    [array]$report += [PSCustomObject]@{ 
     Date = $dd[$index] 
    } 
    $index++ 
} 
$report | Export-Csv -Path "C:\Users\Abby\Desktop\test.txt" -NoTypeInformation 

Nachdem ich den Code lief ich so etwas wie dieses bekam:

 
"IsReadOnly","IsFixedSize","IsSynchronized","Keys","Values","SyncRoot","Count" 
"False","False","False","System.Collections.Hashtable+KeyCollection","System.Collections.Hashtable+ValueCollection","System.Object","5" 

Aber ich möchte eine richtige CSV-Datei wie folgt:

 
"Date" 
"11/3/2017" 

Ist es möglich, durch Powershell ?

+0

Ihr Code macht keinen Sinn. '$ dd' enthält immer nur 1 Wert, das aktuelle Datum. – Ashigore

Antwort

1

Der Code, den Sie gepostet haben, sollte genau das tun, was Sie wollen. Es verwendet jedoch den Beschleuniger [PSCustomObject], der mit PowerShell v3 eingeführt wurde, während Windows   7 mit PowerShell v2 geliefert wird.

Sie haben grundsätzlich drei Möglichkeiten:

  • Upgrade auf Powershell v3 oder höher.

  • Verwenden Sie das New-Object Cmdlets anstelle des [PSCustomObject] Beschleuniger:

    $dd | ForEach-Object { 
        New-Object -Type PSObject -Property @{ 
         Date = $dd[$index] 
        } 
    } | Export-Csv ... 
    
  • Verwenden Sie ein calculated property:

    $dd | Select-Object @{n='Date';e={$_}} | Export-Csv ... 
    
+0

Ich habe meine Antwort gelöscht, weil deine besser ist. – Ashigore

Verwandte Themen