{title}

Ich möchte eine Batch-Datei erstellen, die einen DIR-Befehl ausführt und in eine Textdatei wie diese kopiert. DIR> Test.txt Dann möchte ich alle Informationen aus der Textdatei entfernen, mit Ausnahme der letzten Zeile, in der sie enthalten sind zeigt Bytes frei.Ich möchte nur die Nummer in dieser letzten Zeile. Ich möchte, dass die freie Byte-Nummer als Variable festgelegt wird, und teile diese Nummer dann mit dem Befehl set durch 1073742268, um den freien Speicherplatz in GB an eine weitere Variable zurückzugeben Dies ist möglicherweise eine einfachere Methode, ohne dies an eine tatsächliche Textdatei zu senden, aber ich habe verschiedene Methoden ausprobiert, und keine davon funktioniert, wenn versucht wird, den freien Speicherplatz in einem TrueCrypt-Volume zu ermitteln. Ich kann dies bereits über WMIC auf meinem Laufwerk C, D usw. tun, aber nicht auf meinem Laufwerk G, bei dem es sich um ein TrueCrypt-Volume handelt. Ich kann jedoch ein DIR auf G ausführen, das die erwartete Ausgabe zurückgibt. Mein Ziel, dies an eine Textdatei zu senden und die unnötigen Zeichenfolgen zu entfernen, würde nicht nur mein derzeitiges Bedürfnis nach der Ermittlung des freien Speicherplatzes in meinem TrueCrypt-Volume lösen, sondern mir auch helfen, zu lernen, wie ich Textdateien mit unnötigem Text, in denen ich verwenden könnte, entferne andere Situationen. Vielen Dank.

Mit FINDdir | können Sie die "byte-freie" Zeile der DIR-Ausgabe herausfiltern find "bytes free" Sie können diese Zeile mit FOR mit der Option/F analysieren und das dritte durch Leerzeichen getrennte Token (die Anzahl der freien Bytes) trennen und einer Variablen zuweisen. Im FOR-Datensatz müssen Sie das Pipe-Symbol mit einem Caretfor/f "-Token = 1-3 delims =" %% A in ('dir ^ | find "bytes free"') maskieren, setzen Sie bytesfree = %% CYou now have Die freien Bytes in der Variable% bytesfree% ABER Sie können SET/A nicht zum Teilen verwenden, wenn die freien Bytes 2 GB oder mehr betragen, da die Stapelberechnung auf 32 Bit Genauigkeit begrenzt ist (dh ganze Zahlen zwischen -2.147.483.647 und + 2.147.483.647). Sie können jedoch die eval () - Funktion von Visual Basic Script verwenden, die auf diese Weise nicht eingeschränkt ist. Sie können ein einfaches einzeiliges VBScript erstellen, die Berechnung an dieses übergeben und mit FOR/F die Ergebnisse analysieren. Wscript.echo eval (WScript.Arguments (0)) Möglicherweise finden Sie eine große Anzahl von Nachkommastellen, wie z. B. 21.4063174422784. Sie können also einen anderen VBScript-Oneliner verwenden, um die Zahl zu formatieren, und bei Bedarf eine führende Null hinzufügen (für Zahlen weniger) als 1 GB) und analysieren Sie die Ausgabe erneut mit FOR/F. Alles zusammensetzen @ echo offSet Laufwerk = D: für/f "Tokens = 1-3 delims =" %% A in ('dir% Drive% ^ | find "Bytes free "') setze bytesfree = %% Cecho Wscript.echo eval (WScript.Arguments (0))> Calculate.vbsfor/f" delims = "%% A in (' cscript // nologo berechne.vbs% bytesfree%/1073742268 ') setze GBfreeRaw = %% AREM Wie viele Stellen nach dem Dezimalpunkt sind Dezimalstellen = 2REM Wenn du keine führende Null willst, wenn GB <1, dann ändere dies in FalseSet LeadingZero = Trueecho Wscript.echo Formatnumber (WScript.Arguments ( 0),% decimals%,% LeadingZero%)> Nformat.vbsfor/f "delims =" %% A in ('cscript // nologo NFormat.vbs% GBfreeRaw%') setzen GBfreeFormatted = %% Aecho% Drive% GB free:% GBfreeFormatted% Beispiel outputD: GB free: 128.34

Vergessen Sie nicht, Ihre .vbs-Skripte nach dem Code von Salmon Trout mit Code: del Nformat.vbsdel Calculate.vbs zu bereinigen. Ansonsten landen Sie mit .vbs-Dateien in Ihren Ordnern, die Fehler in zukünftigen Skripten verursachen könnten.

Aufgeräumt; Übergeben Sie den Laufwerksbuchstaben als Parameter. räumt nach sich selbst auf; nur ein vbs; Verwendet den temporären Ordner für VBS. Die Ausgabe wird rechtsbündig ausgerichtet. @ echo offfor/f "tokens = 1-3 delims =" %% A in ('dir% 1: ^ | finde "Bytes frei"') setze bytesfree = %% Cecho Wscript.echo Formatnumber ( eval (WScript.Arguments (0)/1073742268), 2, True ,, False)> "% temp% Calculate.vbs" für/f "delims =" %% A in ('cscript // nologo "% temp% Calculate.vbs "% bytesfree% ') setze GBfree = %% A & del"% temp% Calculate.vbs "setze" GBFree =% GBFRee% "setze GBFree =% GBFRee: ~ -12% echo% 1% GB frei% GB freiBeispielC: > für% A in (ABCDEFGHIJKLMNOPQRSTU VWXYZ) @wenn vorhanden% A: bytesfrei.bat% AA 3,54 GB freiC 21,43 GB freiD 128,34 GB freiF 182,86 GB freiH 206,28 GB freiI 348,84 GB freiV 1388,28 GB freiI 348,94 GB freiV GB frei

Damit dies in Windows 10 funktioniert, müssen Sie diese Zeilen zum Skript hinzufügen, um die Kommas aus der vom Befehl dir find zurückgegebenen freien Anzahl von Bytes zu entfernen. Fügen Sie diese Zeilen nach der Zeile "for/f" hinzu. Tokens = 1-3 delims = " %% A in ('dir% Drive% ^ | find "bytes free"') setze bytesfree = %% C "setze bf =% bytesfree:, =% setze bytesfree =% bf%

Sie sind seit 5 Jahren nicht mehr zurück.

Hast du meinen Beitrag über deinem gesehen? ?

Web wird nicht funktionieren und es sagt im Zusammenhang.

Internet ist verbunden (LAN oder WLAN) Funktioniert aber immer noch nicht? Ich frage mich, ob dies jemand gesehen hat? Ich kann diesen Zugangslaptop veranlassen, über LAN oder sogar drahtlos anzuschließen und dennoch sieht er die Verbindung nicht. Der lustige Teil ist, dass es zeigt, dass es verbunden ist. Der Satus neben der Uhr sagt Verbunden. Kein Internet. Ich habe den Treiber sowohl für die LAN- als auch für die WLAN-Karte viele Male neu installiert und sogar versucht, die IP-Adresse erneut zu senden. Es hilft nichts - es ist nicht der Router oder das Modem. Dieser Computer kann an keinem Router oder Modem eine Verbindung herstellen. Ich habe das Haus des Eigentümers ausprobiert, mein Haus, ein Hot Spot, ich habe es mit dem Modem verbunden, mit dem Router. sagt, dass es verbunden ist, aber das Internet nicht wie im Moment direkt in das Modem durchkommt, sagt, dass es mit 100 Mbit/s verbunden ist. aber kein gesendeter oder empfangener Verkehr und es heißt 8 Pakete

Sie müssen nicht doppelt posten. Fahren Sie hier fort:

Danke, ich mache das schon, aber ich kann nicht in einem Stapel 100 Zeilen für 100 Ordner für jeden Benutzer hinzufügen und jedes Mal einen neuen hinzufügen, wenn ich einen Benutzer zum Backup hinzufüge. Also brauche ich im Stapel Suchordner und füge das Ergebnis zu einer Datei, die gesendet werden kann mit bmail

Sie möchten also D: Benutzer Benutzer Dokumente prüfen? Wenn ja, schauen Sie sich den Befehl für/r an.

Ich habe noch keine Ahnung, wie ich diese Suche in eine txt-Datei packen soll

Dies ist ungetestet: Nur ein Kommentar hier, dass eine gewisse soziale Schmierung in einem Forum nett ist, sodass Sie den Leuten, die geantwortet haben, ein Dankeschön hinzufügen können, auch wenn Sie nur hinzufügen, dass Sie immer noch keine Ahnung haben, wie Sie diese Suche in eine txt-Datei einfügen sollen. .Code:

@echo offfor/d %% a in ("d: users ") tun (falls nicht vorhanden) "%% a Users Documents datet.txt" >> "file.log" echo Missing: "%% a Benutzer Dokumente datet.txt ") Pause

Vielen Dank für Ihre Hilfe. Nach 3 Stunden des Versuchs, einen Stapel zu erstellen, schreibe ich den letzten Beitrag. Ich schätze jede Hilfe von Ihnen allen sehr. Ihr Stapel funktioniert wie immer perfekt. Danke nochmal

Mit Kopie unterstützen.

Ich versuche, eine Datei von meinem Flash-Laufwerk auszuführen, mit der ich eine Batch-Datei von dem Flash-Laufwerk in ein bestimmtes Verzeichnis auf dem Hauptcomputer kopieren und dann die kopierte Datei auf dem Computer ausführen kann, anstatt die Datei von meinem Flash-Laufwerk auszuführen Fahrt. Jede Hilfe dabei wäre sehr dankbar.

Ok, hier ist ein Code, von dem ich denke, dass er funktionieren wird
Code:

@echo offcopy (Flash-Laufwerk, Laufwerksbuchstabe) (siehe in meinem Computer): // "(vollständiger Pfad der Batch-Datei auf dem Flash-Laufwerk)/(Batch-Dateiname)" zu C: // "Documents and Settings/Computer Benutzername/Das gewünschte Verzeichnis "C: //" Dokumente und Einstellungen/Computername/Das gewünschte Verzeichnis "aufrufen

Es sei denn, Sie wissen, wie der Laufwerksbuchstabe des Flash-Laufwerks lautet, und wissen nicht, ob er funktioniert.

Vielen Dank, ich habe das Problem jetzt sortiert und es funktioniert alles gut.

Wenn es sich im Laufwerk befindet (in keinem Verzeichnis), verwenden Sie% cd%, und wenn es sich auf mehreren Computern befindet, verwenden Sie% username%.

Ich kopiere immer Sachen in das aktuelle Verzeichnis mit ".". Zumindest für die Befehle, die jammern, wenn ich kein Ziel gebe. Ich benutze auch oft CD.

es sei denn, Sie wissen, was es sein wird, hilft es keinem

Beliebte Beiträge