Jump to content
Sign in to follow this  
Mr_Marple

Powershell Ausgabe von Variablen

Recommended Posts

Hallo!

 

Ich bastle momentan an meinem ersten Powershell Skript und bin begeistert und entsetzt zugleich! :D

 

Durch viel herumprobieren komme ich langsam aber doch voran, aber zur Zeit hänge ich komplett. :(

 

Ich schreibe an einem Skript welches Ordnerinhalte auswertet und in eine Datei schreiben soll.

Ich kämpfe mit der Ausgabe von Variablen, genauer gesagt damit wie sie ausgegeben werden.

 

Im Moment sieht das noch so aus:

 

Write-Output "Ordner;Größe;Anzahl" | Out-File -Encoding Default C:\temp\test.txt
$stammpfade = Get-ChildItem C:\temp | Where-Object {$_.psIsContainer -eq $true}
$userpfade = $stammpfade | Get-ChildItem -Force | Where-Object {$_.psIsContainer -eq $true}

$stammpfade | ForEach-Object -Process {
$dateien = Get-ChildItem $_.fullname -Force -Recurse | Measure-Object length -sum
$anzahl = $dateien | Select-Object -ExpandProperty Count
$groesse = ($dateien | Select-Object -ExpandProperty Sum)/1048576
$groesserund = [system.Math]::Round($groesse,2)
Write-Output "$_;$groesserund;$anzahl" | Out-File -Append -Encoding Default C:\temp\test.txt
}

 

Der Hund liegt derzeit in der letzten Zeile begraben.

Die Variable $groesserund soll mit einem Komma statt einem Punkt exportiert werden.

Gibt man die Variable alleine aus geht das ja auch, aber so wie oben wird leider immer ein Punkt daraus.

Würde ich die Variablen alle alleine Ausgeben, dann beginnt jedes mal eine neue Zeile.

 

Wichtig ist das Komma deshalb, da eine CSV daraus werden soll.

Und Excel interpretiert Zahlenwerte mit Punkten als Datum und nicht als Zahl.

 

Womöglich ist das ja nur eine Kleinigkeit, aber dadurch dass die Powershell derart komplex ist weiß ich nicht wo ich noch weiter suchen soll.

Vielleicht auch dadurch dass es schon etwas später ist heute... ;)

 

 

Das Skript ist noch nicht fertig, würde mich auch sehr über Optimierungen oder andere Lösungswege freuen, aber derzeit möchte ich nur mal wissen wie ich das hinbekomme dass der Output im Excel ohne Konvertierung gleich zu lesen ist.

 

BitteDanke! :cry:

Share this post


Link to post
Share on other sites

Guten Morgen,

 

versuche es mal mit:

 

$culture = new-object system.globalization.cultureinfo("de-DE")

$groesserund.tostring($culture)

 

Die zweite Zeile dann vor der Ausgabe einbauen, das müsste das Dezimaltrennzeichen auf ein Komma ändern.

Share this post


Link to post
Share on other sites

*Räusper*

Ich weiß das sagt normalerweise ein Mann nicht zu einem Anderen, aber trotzdem: "Du bist ein Schatz!!" :jau:

 

Hab es auf diese Weise eingebaut, da mir deine 2. Zeile nur die Variable ausgegeben hat:

 

$groesserund = $groesserund.tostring($culture)

 

 

Ich hab ja leider noch viel zu wenig Ahnung was man mit der Powershell alles machen kann, was dieses "irgendwas.zeugs(blabla)" zum Beispiel darstellt, aber das wird noch werden.

 

Bis jetzt hab ich nur mit der CMD gearbeitet, nix VBS oder so.

Aber ich denke für "unlösbare" Fragen hab ich hier die richtige Stelle gefunden!

 

Danke!

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...