Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge

Batch in Win2K: Ausgabe eines Befehl als Variable setzen?!?

AH966 / 3 Antworten / Baumansicht Nickles

Hallo!

Habe schon wie verrückt im Internet gestöbert, konnte aber bislang nix zu meinem Problem finden. Allerdings denke ich, daß es für Profis ganz simpel zu lösen ist:

Ich ermittle in einer Batchdatei die Größe eines Ordners und lasse die Zeile mit der Größe mittels "findstr" in eine Textdatei schreiben.
Den Inhalt dieser Textdatei (oder das Ergebnis von "findstr") würde ich gerne als Variable setzen.
Aber wie funktioniert das?

In der Textdatei gibt es immer nur eine Zeile, und diese Zeile will ich mir per "net send" schicken lassen.
Ich dachte, daß ich diese Zeile erst als Variable setze (z.B. groesse) und dann einen Befehl mit net send absetze (z.B. net send COMPUTER Grösse des Ordners %groesse%

Aber weiß jemand, wie ich das Ergebnis eines Befehls in eine Variable setze?

Gruß,AndreasDer Pfad der Gerechten ist zu beiden Seiten gesäumt mit den Freveleien der Selbstsüchtigen und der Tyrannei böser Männer...
bei Antwort benachrichtigen
mr.escape AH966 „Batch in Win2K: Ausgabe eines Befehl als Variable setzen?!?“
Optionen
Ausgabe eines Befehl als Variable setzen?!?
Versuch es mit dem FOR befehl:
FOR /F "" %i IN ('echo hallo') DO @set myvar=%i
echo %myvar%


In der Textdatei gibt es immer nur eine Zeile, und diese Zeile will ich mir per "net send" schicken lassen.
Dann lieber gleich so:
FOR /F "" %i in (myfile.txt) do @net send %i
Beachte die exakte (nicht)verwendung von (doppelten)anführungszeichen!

http://www.rz.fh-ulm.de/rz/winnt/cmd.htm

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen
AH966 mr.escape „ Versuch es mit dem FOR befehl: FOR /F i IN echo hallo DO @set myvar i echo...“
Optionen

Hallo mr. escape,

vielen Dank für die rasche Antwort - es funktioniert prächtig!!

Noch eine Frage habe ich:
Ich arbeite in dem FOR-Befehl mit tokens und setze die dann auf Variablen.
Eine Variable beinhaltet die Größe des Ordners (z.B. 8.746.431).
Wie kann ich damit "rechnen"? Möchte z.B. die Bytes auf MB umrechnen, geht das überhaupt oder wird das ganze nur als Textstring angesehen?

Gruß,AndreasDer Pfad der Gerechten ist zu beiden Seiten gesäumt mit den Freveleien der Selbstsüchtigen und der Tyrannei böser Männer...
bei Antwort benachrichtigen
mr.escape AH966 „Hallo mr. escape, vielen Dank für die rasche Antwort - es funktioniert...“
Optionen
Wie kann ich damit "rechnen"?
Mit dem SET /A befehl kann man auch rechnen, aber die größenangaben mit tausendertrennzeichen müsste u.u. erst in maschinenlesbare form gewandelt werden (z.b. mit FOR /F "delims=.; tokens=1-4" %i IN ("123.345.543") DO @SET /a myvar=2 * %i%j%k%l).

mr.escape
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen