Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Fsutil - in batchdatei einbinden

Frage Entwicklung Batch & Shell

Mitglied: Backspace

Backspace (Level 1) - Jetzt verbinden

16.12.2010 um 21:45 Uhr, 4453 Aufrufe, 7 Kommentare

Hallo,

Sorry, ich schon wieder.

Komm leider wieder nicht weiter:

01.
 
02.
set fixed=%temp%\fixed.txt 
03.
 
04.
for /f %%a in ('fsutil fsinfo drives') do fsutil fsinfo drivetype %%a |find "Eingebautes" >>%fixed% 
05.
 
06.
for /f %%b in ('fsutil fsinfo drivetype %%a |find "Eingebautes') do fsutil volume diskfree %%b >>%fixed% 
07.
 
08.
for /f "tokens=*" %%b in (fixed.txt) do wget -q "http:........" 
09.
 
Mein Vorhaben:

mit fsutil sollen einmal die lokalen Laufwerke und die entsprechenden freien Speicher ausgelesen werden.

Da fsutil beides jeweils anscheinend nur einzeln auslesen kann, muß man die ausgelesenen Werte in eine Datei Zwischenspeichern und zum Schluß wieder richtig zusammenführen.

Ich mußte leider auf fsutil zurückgreifen, da ich seit neuem die Vorgabe habe, den freien Speicher in Byte anzeigen zu lassen, die Umrechnung des freien Speichers (über PHP mit 1024er Blockgröße) von Terrabyte/Gigabyte auf Byte wird leider zu ungenau.


Danke im Voraus !

Gruß

Backspace
Mitglied: bastla
16.12.2010 um 23:02 Uhr
Hallo backspace!

Wie wär's mit
for /f "tokens=1,4" %%a in ('"wmic logicaldisk get caption,description,freespace"^|findstr Festplatte') do echo %%a %%b
Grüße
bastla
Bitte warten ..
Mitglied: Backspace
17.12.2010 um 10:26 Uhr
Hallo bastla,

Danke funktionierte auf Anhieb.

Eine Frage noch:

wenn ich den Code mit "size" erweitere, werden mir auch die Gesamtkapazitäten angezeigt, die mathematische Umrechnung um den freien Speicher in Prozent zu erhalten wäre:

100% - [freespace / size * 100]



01.
for /f "tokens=1,4" %%a in ('"wmic logicaldisk get caption,description,freespace,size"^|findstr Festplatte') do echo %%a %%b
Kann man das auch mit in die Forschleife einfügen, sonst würde ich ja doppelte Ausgaben erhalten, also einmal nur Laufwerk und Frei(%) , und eine weitere Ausgabe nur mit Laufwerk und Frei(Byte), wenn ich noch eine zweite Forschleife erstelle.

Danke

Gruß

Backspace
Bitte warten ..
Mitglied: bastla
17.12.2010 um 15:19 Uhr
Hallo Backspace!

Bedingt durch die Beschränkungen der CMD-Arithmetik (nur ganzzahlig, max 32-Bit-Werte) könntest Du das nur etwa so versuchen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
for /f "tokens=1,4,5" %%a in ('"wmic logicaldisk get caption,description,freespace,size"^|findstr Festplatte') do ( 
03.
    set Free=%%b 
04.
    set Size=%%c 
05.
    set /a Pct=!Free:~,-3!/!Size:~,-5! 
06.
    echo %%a %%b !Pct! 
07.
)
Den freien Speicher in Prozent erhältst Du übrigens mit
freespace / size * 100
- Deine Formel würde den Prozentsatz für den belegten Speicherplatz liefern.

Für die Berechnung im Batch wird mit auf 1.000 Byte abgerundeten Werten gerechnet, indem vom freien Speicherplatz die letzten 3 Stellen weggelassen werden und vom Gesamtspeicher die letzten 5 Stellen - entspricht dann also der Formel
freespace / (size / 100)
Grüße
bastla

P.S.: Was spricht eigentlich gegen die Verwendung von VBS (einen entsprechenden Ansatz hattest Du ja bereits)?
Bitte warten ..
Mitglied: Backspace
17.12.2010 um 16:13 Uhr
Hallo bastla,

das VBS mußte ich leider wieder aus der batch entfernen (Anweisung von Oben).


Zum obigen Code:

es kommt leider folgende Fehlermeldung:

Fehlender Operator
C: 63968415744 !Pct!
Fehlender Operator
D: 7050096640 !Pct!

Wie müßte es aussehn, wenn ich es mit dem..............DO wget -q "http:................." verbinden möchte ?

Danke

Gruß

Backspace
Bitte warten ..
Mitglied: bastla
17.12.2010 um 16:45 Uhr
Hallo Backspace!

Ändere das "echo off" auf "echo on" und starte den Batch aus einem CMD-Fenster - dann siehst Du, welcher Wert nicht zugewiesen wird, und wenn Du dann noch die Ausgabe von
wmic logicaldisk get caption,description,freespace,size
analysierst, wirst Du hoffentlich feststellen können, welche "tokens" bei Deiner (leider nicht genannten) Windows-Version benötigt werden (unter XP SP3 funktioniert der von mir gepostete Batch) ...
Wie müßte es aussehn, wenn ich es mit dem..............DO wget -q "http:................." verbinden möchte ?
Die gesamte Klammer (= Zeilen 3 bis 6) wird für jedes Laufwerk einmal ausgeführt - daher einfach "wget ..." innerhalb der Klammer platzieren (analog zu Zeile 6).

Grüße
bastla
Bitte warten ..
Mitglied: Backspace
18.12.2010 um 20:13 Uhr
Hallo bastla,

möchte mich zuerst wieder für die tolle Hilfe bedanken.

Mein Arbeitsrechner an dem ich alles teste, hat leider ein Vista Betriebssystem, abgesehn davon muß das Batch für alle Winversionen funktionieren (Win Server2003/2008, XP Prof., Vista, Win7,....).

Könnte man das evtl. auch in dieser Art lösen, war ein Ansatz von mir, den ich leider auch nicht zu Ende bringen konnte ?

01.
FOR /F "tokens=1,4" %%i IN ('"wmic logicaldisk get caption,description,size"^|findstr Lokale') DO SET "Size=%%i" 
02.
FOR /F "tokens=1,4" %%k IN ('"wmic logicaldisk get caption,description,freespace"^|findstr Lokale') DO SET "Free=%%k" 
03.
 
04.
FREESPACE=100 
05.
FreeSpace=FREESPACE-(Free/Size*100) 
06.
let FreeSpace=$FREESPACE_in_Prozent - $...... 
07.
08.
09.
.

Ich kann Deine o.g. Vorschläge erst wieder am Montag testen, wenn ich wieder in der Firma bin.

Danke

Gruß

Backspace
Bitte warten ..
Mitglied: bastla
18.12.2010 um 21:15 Uhr
Hallo Backspace!

Abgesehen davon, dass unsere Interpretationen hinsichtlich der Prozentberechnung etwas differieren, solltest Du schon gesehen haben, dass arithmetische Berechnungen in CMD mit "set /a Variable=" durchgeführt werden.
Hinsichtlich der Verwendung zweier "wmic"-Abfragen: ist möglich (wenn auch für den angestrebten Zweck nicht in der von Dir dargestellten Form), aber ziemlich sinnlos ...
Ob die "wmic"-Ausgabe unter allen benötigten BS das selbe Ergebnis (zumindest hinsichtlich der "tokens") liefert, musst Du selbst testen.
Noch als Hinweis: Für die Verwendung von "wmic" sind Admin-Rechte erforderlich.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Windows 10
Komulatives Update in WIM Datei einbinden (3)

Frage von kingsepp zum Thema Windows 10 ...

Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Batch & Shell
gelöst Batchdatei für Aufgabenplanung zum Löschen von Backups (2)

Frage von Winuser zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte