Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell rechnet falsch?

Mitglied: functionstrut

functionstrut (Level 1) - Jetzt verbinden

24.10.2015, aktualisiert 25.10.2015, 909 Aufrufe, 3 Kommentare

Hallo,

ich bin schon seit Stunden am verzweifeln

ich habe mir ein Script geschrieben was von mehreren Festplatten den freien Speicherplatz ermittelt aber nach jeder festplatte überprüft ob ein bestimmter Ordner auf diese Festplatte passt.

leider rechnet Powershell irgendwie falsch oder eine Variable haut nicht hin? (Obwohl sie ja richtig ausgegeben wird wie in dem letzten Satz zu sehen)


$Ordner = Get-Item "E:\ordner"
$Groesse = (Get-ChildItem $Ordner.FullName -Recurse | Measure-Object -Property length -Sum).Sum
$GroesseGB = "{0:N2}" -f ($Groesse/1GB)
Write-Host "Der ordner ist $GroesseGB GB gross"

$Festplatte1 = get-wmiobject -computer computername win32_volume -Filter "Label='Festplatte 1'" | Select -ExpandProperty FreeSpace
$Festplatte1GB = "{0:N2}" -f ($Festplatte1/1GB)
Write-Host "Auf dieser Festplatte sind noch $Festplatte1GB frei"
Write-Host "GroesseGB hat den Wert $GroesseGB"
Write-Host "Festplatte1GB hat den Wert $Festplatte1GB"
if( "$Festplatte1GB" -gt "$GroesseGB" ){
Write-Output "_1" | Out-File -FilePath .\Powershell_test_Ausgabe.txt -Encoding ascii
Write-Host "Der Ordner mit $GroesseGB passt auf die Festplatte"
}
else {Write-Host "Der Ordner mit $GroesseGB GB passt NICHT auf die Festplatte auf der noch $Festplatte1GB GB frei sind"}

3ab91cfb9fcaee8099fa59739ece06a4 - Klicke auf das Bild, um es zu vergrößern



wenn ich bei if den vergleich von -gt auf -lt ändere, Stimmt das Ergebnis (er sagt es ist genug Speicher vorhanden) aber das ist dann genau falschrum.
Mitglied: 114757
LÖSUNG 24.10.2015, aktualisiert 25.10.2015
Moin,
leider rechnet Powershell irgendwie falsch
Nein, das tut sie ganz bestimmt nicht, du machst nur statt eines Zahlen- einen String-Vergleich, erstens weil du in deinem IF-Vergleich Anführungszeichen um die Variablen setzt und zweitens solltest du zum Vergleich besser die RAW-Byte Werte nehmen.

Bedenke immer, jede Variable hat in Powershell einen Typ (integer, string, double, float, byte, etc.)
Das musst du Powershell schon mitteilen was du wie vergleichen willst! Den Typ einer Variablen kannst du die mit $Groesse.getType() von einer Variablen anzeigen lassen....

Schreib also:
01.
if( $Festplatte -gt $Groesse){
dann funktioniert das auch.

Gruß jodel32

wenn ich bei if den vergleich von -gt auf -lt ändere, Stimmt das Ergebnis (er sagt es ist genug Speicher vorhanden) aber das ist dann genau falschrum
Genau das passiert dann beim Stringvergleich
Bitte warten ..
Mitglied: functionstrut
24.10.2015 um 22:41 Uhr
Hi,

vielen Dank für deine Hilfe auf die Lösung hätte ich auch selbst kommen können. garnicht so einfach wenn man von cmd auf powershell umsteigt :D
Bitte warten ..
Mitglied: 114757
25.10.2015, aktualisiert um 12:40 Uhr
Na dann fehlt ja nur noch das gelöst.
Bitte warten ..
Ähnliche Inhalte
Windows Tools

Powershell Befehle aus Batch-Datei falsch überetzt?

gelöst Frage von ChillministratorWindows Tools2 Kommentare

Hallo zusammen, Mein Ziel ist folgendes: Eine batch Datei soll als erstes die Statuseinträge in eine Datei schreiben. - ...

Windows 10

Windows 10 rechnet endlich richtig

Information von LochkartenstanzerWindows 103 Kommentare

Moin, Es hat nur zwei Jahre gebraucht, bis Microsoft dem Taschenrechner in Windows 10 beigebracht hat, richtig mit Quaratwurzeln ...

Batch & Shell

Batch-Variable rechnet immer weiter

Frage von ZwergkaninchenBatch & Shell4 Kommentare

Hallo, Leute! Ich wollte mir ein kleines Idle-Game in Batch schreiben, aber ich komm nicht weiter. Hier ist ein ...

Windows Netzwerk

Windows Netzlaufwerk mit der PowerShell verbinden - Fehlermeldung, dass Netzwerkkennwort ist falsch

gelöst Frage von mr.kkevWindows Netzwerk2 Kommentare

Guten Abend zusammen Da ich ein Neuling in PowerShell bin, bringt mich folgendes Problem um den Verstand. Ich möchte ...

Neue Wissensbeiträge
E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 10 StundenE-Mail7 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Outlook & Mail

Outlook 2016 stürzt ab, wenn man ein (at)- Zeichen im Text einer neuen E-Mail schreibt

Tipp von Enriqe vor 22 StundenOutlook & Mail4 Kommentare

Bei uns in der Firma häuften sich die Fälle, bei denen sich Outlook kommentarlos verabschiedet, wenn man ein - ...

Google Android

Google sperrt Android-Updates und den Play Store für Huawei

Information von Deepsys vor 1 TagGoogle Android8 Kommentare

Das finde ich schon ein starkes Stück, Trump der Welt Diktator. So kann man mit einem Dekret mal eben ...

Windows 7

Südkoreas Regierung setzt auf Linux, um Windows 7 Clients abzulösen

Information von kgborn vor 2 TagenWindows 74 Kommentare

Kleiner Infosplitter zum Wochenanfang: Während München (LiMux) und die niedersächsische Finanzverwaltung von Linux auf einen Windows 10-Client (und Office) ...

Heiß diskutierte Inhalte
DNS
DNS fragt falsche ip zuerst ab
gelöst Frage von recoldDNS23 Kommentare

Hallo zusammen, wollte mal fragen, was mit meiner DNS falsch ist? der A eintrag 88.48.118.88 sollte auf den ts3 ...

Windows Server
Passwortänderung an RODC möglich?
Frage von DexthaWindows Server23 Kommentare

Hallo, ich habe einen RODC, auf welchen ich über ldaps (Web-Seite mit php7) Passwortänderungen durchführen möchte. Ist das grundsätzlich ...

Windows 10
Windows am MAC
gelöst Frage von LeeX01Windows 1019 Kommentare

Guten Abend zusammen, ich habe gerade ein Macbook Pro vor mir welches ich mit einem Windows 10 to go ...

Windows Server
RDP als Citrix Alternative
gelöst Frage von samreinWindows Server17 Kommentare

Hallo zusammen, ich bin neu hier und das ist mein erster Beitrag. Ich bin Einzeladmin und wir setzen bei ...