Erklärung zu .bat set Befehlen
19Hallo,
Kann mir vielleicht jemand erkären, wie ich den Befehl "set" benutzen kann, dass ich mir einmal etwas Bildliches darunterf vorstellen kann,....
denn, wenn man die Beschreibungen liest, welches Rufueichen,oder Prozentzeichen was macht, dann kommt man schon einmal aus der Bahn, weil man sich nicht mehr auskennt.
Ich möchte wenn es irgendwie geht, und es muss gehen, sonst könnten nicht sooo viele, diese Sprache erlernen...
Ich mache schon sehr viel mit *.bat, aber an den Befehl "set" habe ich mich nochnicht herangefraut!
Ich hoffe es gibt jemanden, der es mir ansatzweise erklären kann, und mir sagen kann, wie er es selbst erlernt hat.
wäre sehr dankbar!
mfg
regedit19
Kann mir vielleicht jemand erkären, wie ich den Befehl "set" benutzen kann, dass ich mir einmal etwas Bildliches darunterf vorstellen kann,....
denn, wenn man die Beschreibungen liest, welches Rufueichen,oder Prozentzeichen was macht, dann kommt man schon einmal aus der Bahn, weil man sich nicht mehr auskennt.
Ich möchte wenn es irgendwie geht, und es muss gehen, sonst könnten nicht sooo viele, diese Sprache erlernen...
Ich mache schon sehr viel mit *.bat, aber an den Befehl "set" habe ich mich nochnicht herangefraut!
Ich hoffe es gibt jemanden, der es mir ansatzweise erklären kann, und mir sagen kann, wie er es selbst erlernt hat.
wäre sehr dankbar!
mfg
regedit19
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 147366
Url: https://administrator.de/contentid/147366
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
8 Kommentare
Neuester Kommentar
Hallo
War vor einem Jahr auch soweit.
der set befehl erstellt eine temporäre Umgebungsvariable
Beispiele:
setzt die Variable Test mit dem Inhalt Dies_ist_ein_Test
um den inhalt der Variable aufzurufen
ergiebt: Dies_ist_ein_Test
es gibt noch den Befehl
Fragt den Benutzer nach dem Inhalt der Variable Test
Setzt den Inhalt der Variable Zahl mit einem numerischen Wert
alleine
listet alle Umgebungsvariablen auf
listet alle Umgebungsvariablen auf die mit Test beginnen
in einem Batch mit dem Befehl set wird die Variable nur solange gesetzt bis das Script beendet ist
PS.
löscht die Variable Test bzw. setzt einen leeren inhalt.
Grüsse
Switcher
War vor einem Jahr auch soweit.
der set befehl erstellt eine temporäre Umgebungsvariable
Beispiele:
set Test=Dies_ist_ein_Test
setzt die Variable Test mit dem Inhalt Dies_ist_ein_Test
um den inhalt der Variable aufzurufen
echo %Test%
ergiebt: Dies_ist_ein_Test
es gibt noch den Befehl
set /p Test=Bitte Text angeben:
Fragt den Benutzer nach dem Inhalt der Variable Test
set /a Zahl=1
Setzt den Inhalt der Variable Zahl mit einem numerischen Wert
set
listet alle Umgebungsvariablen auf
set Test
listet alle Umgebungsvariablen auf die mit Test beginnen
in einem Batch mit dem Befehl set wird die Variable nur solange gesetzt bis das Script beendet ist
PS.
set Test=
löscht die Variable Test bzw. setzt einen leeren inhalt.
Grüsse
Switcher
Hallo regedit19!
Mit dem Befehl "set" kannst du eine Variable definieren. Variablen können praktisch alles speichern. Wenn du z.B. Text in ihr gespeichert hast, kannst du sie in deine Befehle einbauen. Das einzige was nicht geht, ist sie direkt als Befehl zu verwenden. Wenn du sie einsetzten willst, gib einfach %Variablenname% ein.
Benutzt wird set so:
Das geht auch und verhindert Leerzeichen am Ende der Variable (sie würden sonst dazukommen)
So kann man einer Variable einen Numerischen wert zuweisen:
Rechnen geht z.B. so:
Das ergebnis wäre 9
Das geht auch(Der Wert wird zum Alten wert dazugerechnet(rechenoperation variabel))
Dabei hätte Zahl1 den wert 9
Es geht auch mit * und / und -
So kann der Benutzer etwas eingeben(der Befehl wartet auf das erste "Enter")
Und so wird die erste Zeile einer Datei eingelesen(eben bis zum ersten "Enter")
Ich hoffe es ist verständlich
Mathe172
//Edit:War wohl jemand schneller...
Mit dem Befehl "set" kannst du eine Variable definieren. Variablen können praktisch alles speichern. Wenn du z.B. Text in ihr gespeichert hast, kannst du sie in deine Befehle einbauen. Das einzige was nicht geht, ist sie direkt als Befehl zu verwenden. Wenn du sie einsetzten willst, gib einfach %Variablenname% ein.
Benutzt wird set so:
set variable=wert
set "variable=wert"
set /a "variable=zahl"
set /a "zahl1=5"
set /a "zahl2=4"
set /a "ergebnis=%zahl1%+%zahl2%"
Das geht auch(Der Wert wird zum Alten wert dazugerechnet(rechenoperation variabel))
set /a "zahl1=5"
set /a "zahl2=4"
set /a "zahl1+=%zahl2%
Es geht auch mit * und / und -
So kann der Benutzer etwas eingeben(der Befehl wartet auf das erste "Enter")
set /p Variable="Das was davor steht: "
set /p Variable=<Datei
Ich hoffe es ist verständlich
Mathe172
//Edit:War wohl jemand schneller...
@10750
Schöne Erklärung ...
Nur
Wenn davor ein "
(um damit sicher zu stellen, dass keine "Variablen-Reste" zurückbleiben).
Wird der Batch (was zumindest in der Testphase dringend zu empfehlen ist) aus einer CMD-Shell gestartet und es gibt darin kein "
Grüße
bastla
Schöne Erklärung ...
Nur
in einem Batch mit dem Befehl set wird die Variable nur solange gesetzt bis das Script beendet ist
wäre etwas zu relativieren:Wenn davor ein "
setlocal
" durchgeführt wurde, werden tatsächlich alle Änderungen an einer bestehenden oder auch neu gesetzten Variablen beim nächsten "endlocal
" (explizit oder automatisch am Ende des Batches) wieder "vergessen" - daher beginnen die meisten Batches (zumindest hier) mit@echo off & setlocal
Wird der Batch (was zumindest in der Testphase dringend zu empfehlen ist) aus einer CMD-Shell gestartet und es gibt darin kein "
setlocal
", behalten sehr wohl die in diesem Batch geänderten oder erstellten Variablen ihren Wert, bis dieser (und damit die Variable) - wie oben beschrieben - gelöscht oder die CMD-Shell geschlossen wird.Grüße
bastla
moin,
ganz ehrlich?
wenn du deine Batche mit den gleichen Schreibfehlern schreibst, wie deine Frage - wird das sehr sehr sehr mühsam.
Wie ich batcheln gelernt hab?
Ganz einfach...
Dosbox - bzw. Dos war ja mal das OS und winblows gabs erst später - gestartet
Jede .exe .com mit einem /? gestartet und mir angesehen, was mir das Dingens erzählt - manche schrieben mir aber auch nix zurück.
Irgendwann mal gabs dann Compuserv und da tummelten sich die anderen, die Bücher gelesen haben und hin und wieder hat man eine fremdbatch inspiziert.
Und wenn du mal meinen "Fortschritt" in diesem Forum verfolgst - früher hatte ich eine eigene Art - batche zu schreiben, mittlerweile hab ich viel von den beiden Bs aus dem B Bereich übernommen.
ganz ehrlich?
wenn du deine Batche mit den gleichen Schreibfehlern schreibst, wie deine Frage - wird das sehr sehr sehr mühsam.
Wie ich batcheln gelernt hab?
Ganz einfach...
Dosbox - bzw. Dos war ja mal das OS und winblows gabs erst später - gestartet
Jede .exe .com mit einem /? gestartet und mir angesehen, was mir das Dingens erzählt - manche schrieben mir aber auch nix zurück.
Irgendwann mal gabs dann Compuserv und da tummelten sich die anderen, die Bücher gelesen haben und hin und wieder hat man eine fremdbatch inspiziert.
Und wenn du mal meinen "Fortschritt" in diesem Forum verfolgst - früher hatte ich eine eigene Art - batche zu schreiben, mittlerweile hab ich viel von den beiden Bs aus dem B Bereich übernommen.
@mathe172
Auch hybsch ...
BTW: Schon mal
versucht?
Übrigens:
Grüße
bastla
Auch hybsch ...
BTW: Schon mal
set /a "zahl1=5"
set /a "zahl2=4"
set /a ergebnis=zahl1+zahl2
Übrigens:
Das einzige was nicht geht, ist sie direkt als Befehl zu verwenden.
set "Inhalt=dir /s /b /a-d"
%Inhalt%
bastla
Danke Bastla
hatte ich vollkommen vergessen
Grüsse
Switcher
hatte ich vollkommen vergessen
Grüsse
Switcher