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, 1134 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
Batch & Shell

Problem bei Shellcode: Programm rechnet mit Datum falsch

gelöst Frage von Fizzo361Batch & Shell11 Kommentare

Hallo Liebe IT-Gemeinde, ich habe bereits viele Infos aus dem Forum nutzen können ,aber nun bin ich soweit das ...

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 ...

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
Linux Tools
Dolibarr ERP CRM - Update Prozess
Anleitung von radiogugu vor 12 StundenLinux Tools

Hallo. Dies soll den kurzen Update Prozess der Software schildern. Zugrunde liegt eine Ubuntu Linux VM an der Stelle. ...

Linux Tools
Dolibarr ERP CRM - Überblick der Software
Anleitung von radiogugu vor 14 StundenLinux Tools

Hallo. Nach der Anleitung zur Einrichtung und Installation der Datenbank und des Webserver Dolibarr ERP CRM Installation möchte ich ...

Linux Tools

Dolibarr ERP CRM Installation der Datenbank und des Webserver

Anleitung von radiogugu vor 14 StundenLinux Tools

Hallo zusammen. Ich bin seit kurzem nebenberuflich selbstständig und suchte eine geeignete Software für die Auftragsverwaltung, CRM und ein ...

Sicherheit

Chrome 79 übermittelt eingegebene Kennwörter nach Hause

Information von DerWoWusste vor 1 TagSicherheit15 Kommentare

Ab sofort warnt Chrome standardmäßig Nutzer davor, wenn aus Leaks bekannte Passwörter zum Einsatz kommen. Beim Besuch einer Website, ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerkstruktur für Zuhause 1Anschluss 2 Netze
Frage von chrishaefNetzwerke24 Kommentare

Hallo liebes Forum, Ich hätte da mal eine Frage an die Profis. Bei uns liegt ein DSL Anschluss im ...

Batch & Shell
Eingabeaufforderung macht Pause bei Datensicherung mit Robocopy auf DVD
Frage von anmelderBatch & Shell23 Kommentare

Hallo, ich sichere einige Daten per Robocopy auf DVD-RAM. Wenn ich nicht am Rechner sitze macht der Befehl nach ...

Server-Hardware
Server startet nach Debian Installation nicht mehr
Frage von RobertDServer-Hardware17 Kommentare

Hallo, ich habe heute zum ersten Mal auf meinen Server (selbst zusammengebaut) Linux installiert, ging auch alles ganz gut. ...

Windows 10
Windows 10 Herunterfahren - Funktioniert nach Upgrade von Windows 7 nicht mehr
Frage von krischeuWindows 1016 Kommentare

Hi, ich habe verschiedene PCs mit dem Upgrade Assistenten von Windows 7 Pro 64 Bit auf Windows 10 geupdatet. ...