Variablen in CSV-Datei speichern
Hallo alle zusammen
ich beschäftige mich seit einigen Tagen mit Powershell und bin begeistert wie mächtig dies doch ist.
Als Neuling habe ich natürlich auch gleich ein paar Fragen.
um daten zu erfassen möchte ich ein paar Variablen in eine CSV-Datei speichern. Hierzu habe ich mal zum testen 3 variablen erstellt. Meine Frage ist nun:
1. wie speichere ich diese in einer CSV
2. wie kann ich einen weiteren Datensatz an diese Datei anhängen
3. wie kann ich die Daten wieder auslesen
vielen dank im vorraus
ich beschäftige mich seit einigen Tagen mit Powershell und bin begeistert wie mächtig dies doch ist.
Als Neuling habe ich natürlich auch gleich ein paar Fragen.
um daten zu erfassen möchte ich ein paar Variablen in eine CSV-Datei speichern. Hierzu habe ich mal zum testen 3 variablen erstellt. Meine Frage ist nun:
1. wie speichere ich diese in einer CSV
2. wie kann ich einen weiteren Datensatz an diese Datei anhängen
3. wie kann ich die Daten wieder auslesen
vielen dank im vorraus
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 207398
Url: https://administrator.de/forum/variablen-in-csv-datei-speichern-207398.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
16 Kommentare
Neuester Kommentar
Hallo Gundelputz,
was du machen kannst ist die Variablen in eine Hashtable einzutragen dann ein PS-Objekt daraus zu erstellen und mit Export-CSV in eine CSV zu exportieren:
Grüße Uwe
was du machen kannst ist die Variablen in eine Hashtable einzutragen dann ein PS-Objekt daraus zu erstellen und mit Export-CSV in eine CSV zu exportieren:
Export in eine CSV
$hashtable = @{"Name"="Sepp";"Nachname"="Meier"}
$obj = New-Object PSObject -Property $hashtable
$obj | export-csv -Path "C:\test.csv" -NoTypeInformation
Import einer CSV in ein Objekt
$csv = import-csv -Path "C:\test.csv"
Zugriff auf die Inhalte des CSV-Objekts
$csv | %{write-host $_.Name $_.Nachname}
Grüße Uwe
Das ginge z.B. so
und mit Regular Expressions so:
$string = get-content "c:\usr\snmpget\1.txt"
$zaehler = $string.Substring($string.LastIndexOf(":")+2, $string.length - ($string.LastIndexOf(":")+2))
Function Get-Matches($Pattern,$groupNumber = 0) {
begin { $regex = New-Object Regex($pattern) }
process { foreach ($match in ($regex.Matches($_))) { ([Object[]]$match.Groups)[$groupNumber].Value } }
}
$string = get-content "c:\usr\snmpget\1.txt"
$zaehler = $string | Get-Matches "(\d*$)"
Zitat von @Gundelputz:
wird zwar ohne Fehlermeldung ausgeführt aber ich scheitere dann am import der Zeilen.
die Zeilen kannst du dir ja erst mal anzeigen lassen indem du einfach wird zwar ohne Fehlermeldung ausgeführt aber ich scheitere dann am import der Zeilen.
$csv
in der Shell eingibst. Um auf die einzelnen Zeilen mit deren Werten zuzugreifen musst du eine Schleife verwenden, wie in meinem ersten Kommentar geschrieben:$csv | %{write-host $_.Name $_.Nachname}
$_.Vorname
.das gleiche gilt für das anhängen von Datensätzen. hier muss es doch so etwas wie open for append geben.
wenn du nur etwas an eine CSV-Datei anhängen willst, kannst du das auch ohne Import der Daten folgendermaßen machen:"`nSepp,Meier,Musterstraße 20,55555 Musterhausen" | Out-File -Append "C:\test.csv" -Encoding UTF8
`n
am Anfang erzeugt einen Zeilenumbruch in der Datei damit die Daten in einer neuen Zeile anfangen.kannst du mir da etwas an Literatur empfehlen(in deutscht)in der alles beschrieben wird. so was wie ein Kompendium mit vielen
Beispielen und Erleuterungen.
das Handbuch ist für einen Anfänger wie mich doch etwas verworren. Bis du erst mal den richtigen Befehl hast dauert es
Also, ich habe so angefangen das ich mir in der Hilfe-Datei zur Powershell mal die Einführung durchgelesen habe und dann alles Schritt für Schritt aus dem Netz gezogen habe wenn ich was nicht verstanden habe. Wenn du Windows 7 verwendest, starte mal den "Windows Powershell ISE" Editor und drücke F1 dort findest du die Einführung.Beispielen und Erleuterungen.
das Handbuch ist für einen Anfänger wie mich doch etwas verworren. Bis du erst mal den richtigen Befehl hast dauert es
und gleich noch ne Frage. Wie kann ich Variablen konvertieren. Finde weder im Handbuch noch im Netz was passendes
in was willst du die Variable konvertieren ?
Ah OK.
Das geht so:
oder
siehe auch hier: http://www.pavleck.net/powershell-cookbook/ch06.html
Das geht so:
[Convert]::toInt32($zaehler)
[Convert]::toString($integer)
siehe auch hier: http://www.pavleck.net/powershell-cookbook/ch06.html
noch zur Info die Dir beim lernen von Powershell hilft:
Das CMDLet get-member kann dir Funktionen und Eigenschaften eines Objektes anzeigen die es unterstützt. Z.b. möchte ich wissen was für Methoden ich mit einem String ausführen kann. dazu übergebe ich einfach das entsprechende Objekt an get-member:
und schon bekomme ich schön aufgelistet was ich mit dem String machen kann, bzw. welche Funktionen unterstützt werden.
Das CMDLet get-member kann dir Funktionen und Eigenschaften eines Objektes anzeigen die es unterstützt. Z.b. möchte ich wissen was für Methoden ich mit einem String ausführen kann. dazu übergebe ich einfach das entsprechende Objekt an get-member:
"Test" | get-member
und noch was zur Hilfefindung:
zeigt dir verfügbare CMDLets an die mit dem Suchbegriff zu tun haben.
ansonsten kannst du mit Powershell auch die ganze Welt der .NET-Funktionen oder COM-Objekten benutzen wenn du willst.
So denke das ist mal genug Stoff fürs erste ...
Nun viel Spaß beim lernen, du wirst sehen, einmal dran gewöhnt wilst du Batch nicht mehr sehen.
Wenn noch irgendwelche Fragen auftauchen kannst du dich gerne per PM an mich wenden.
(p.s. Bitte markiere den beitrag noch als gelöst, merci)
get-help DeinSuchbegriff
ansonsten kannst du mit Powershell auch die ganze Welt der .NET-Funktionen oder COM-Objekten benutzen wenn du willst.
So denke das ist mal genug Stoff fürs erste ...
Nun viel Spaß beim lernen, du wirst sehen, einmal dran gewöhnt wilst du Batch nicht mehr sehen.
Wenn noch irgendwelche Fragen auftauchen kannst du dich gerne per PM an mich wenden.
(p.s. Bitte markiere den beitrag noch als gelöst, merci)