Ich habe ein .bat-Skript, das mit dem Einschalten eines dedizierten Sicherungsservers beginnt, die produktive Umgebung mit Robocopy speichert und den Server herunterfährt, wenn Sie fertig sind.
Vor dem Speichern werden einige Überprüfungen durchgeführt und geeignete Maßnahmen angefordert, wenn etwas nicht in Ordnung ist, z. B. wenn der Ziel-JBOD-Fall aufgrund des Ausschaltens nicht erkannt wurde.
Es gibt jedoch noch eine Einschränkung, die ich bisher nicht bewältigen konnte.
Wie kann ich in der .bat-Datei testen, ob auf den Zielfestplatten genügend Speicherplatz vorhanden ist, um alle Dateien zu empfangen, oder nicht? (Es ist in Ordnung, auf eine feste Speichergröße zu testen, die regelmäßig geändert wird. Derzeit sind es fast 100 GB.)
Ist es überhaupt möglich? Wenn ja, welchen Befehl muss ich recherchieren?
quelle
Am einfachsten ist es, die letzte Zeile in der
dir
Ausgabe zu betrachtenSie können auch die Größe Wert direkt erhalten , indem die 3 bekommen rd Token in der Ausgabe
Es ist jedoch nicht zuverlässig, da die Zeichenfolge in einer anderen Sprache möglicherweise anders ist. Beachten Sie auch, dass Sie manchmal viel freien Speicherplatz haben, aber keine weiteren Dateien schreiben können, weil Sie einige Grenzen wie die maximale Dateigröße oder die maximale Anzahl von Dateien in einem Volume / Verzeichnis erreicht haben ...
Der richtigste Weg ist
quelle
find /i "C:"
Teil nicht das tun würde, was Sie erwarten, wenn Sie mehrere Partitionen auf Pfaden haben, die mit beginnenC:
. Windows hat dies seit 2000 erlaubt, aber es ist keine sehr häufig verwendete Funktion, so dass dies im Fall des OP möglicherweise kein Problem darstellt, aber es ist wahrscheinlich nicht "der richtigste Weg", dies zu tun.path\to\mountpoint
danndir /-c /w path\to\mountpoint | find "bytes free"
funktioniert es noch. Möglicherweise benötigen Sie ein unterstützendes Skript mit,mountvol
wenn Sie möchten, dass es funktioniertwmic