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

Erklärung zu .bat set Befehlen

Frage Entwicklung Batch & Shell

Mitglied: regedit19

regedit19 (Level 1) - Jetzt verbinden

21.07.2010, aktualisiert 19:51 Uhr, 4192 Aufrufe, 8 Kommentare

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
Mitglied: 90776
21.07.2010 um 21:04 Uhr
Hallo

War vor einem Jahr auch soweit.

der set befehl erstellt eine temporäre Umgebungsvariable

Beispiele:

01.
set Test=Dies_ist_ein_Test
setzt die Variable Test mit dem Inhalt Dies_ist_ein_Test

um den inhalt der Variable aufzurufen

01.
echo %Test%
ergiebt: Dies_ist_ein_Test

es gibt noch den Befehl

01.
set /p Test=Bitte Text angeben: 
Fragt den Benutzer nach dem Inhalt der Variable Test

01.
set /a Zahl=1
Setzt den Inhalt der Variable Zahl mit einem numerischen Wert

01.
set
alleine

listet alle Umgebungsvariablen auf

01.
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.

01.
set Test=
löscht die Variable Test bzw. setzt einen leeren inhalt.

Grüsse
Switcher
Bitte warten ..
Mitglied: mathe172
21.07.2010 um 21:17 Uhr
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:
01.
set variable=wert
Das geht auch und verhindert Leerzeichen am Ende der Variable (sie würden sonst dazukommen)
01.
set "variable=wert"
So kann man einer Variable einen Numerischen wert zuweisen:
01.
set /a "variable=zahl"
Rechnen geht z.B. so:
01.
set /a "zahl1=5" 
02.
set /a "zahl2=4" 
03.
set /a "ergebnis=%zahl1%+%zahl2%"
Das ergebnis wäre 9
Das geht auch(Der Wert wird zum Alten wert dazugerechnet(rechenoperation variabel))
01.
set /a "zahl1=5" 
02.
set /a "zahl2=4" 
03.
set /a "zahl1+=%zahl2%
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")
01.
set /p Variable="Das was davor steht: "
Und so wird die erste Zeile einer Datei eingelesen(eben bis zum ersten "Enter")
01.
set /p Variable=<Datei
Ich hoffe es ist verständlich

Mathe172

//Edit:War wohl jemand schneller...
Bitte warten ..
Mitglied: bastla
21.07.2010 um 21:23 Uhr
@10750
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
(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 "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
Bitte warten ..
Mitglied: 60730
21.07.2010 um 21:24 Uhr
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.
z.B. hab ich früher gern errorlevel abgefragt - heute benutz ich fast nur noch && oder || - außer ich will zwischen 1,2 oder 3 unterscheiden können.
Bitte warten ..
Mitglied: bastla
21.07.2010 um 21:28 Uhr
@mathe172
Auch hybsch ...
BTW: Schon mal
01.
set /a "zahl1=5" 
02.
set /a "zahl2=4" 
03.
set /a ergebnis=zahl1+zahl2
versucht?

Übrigens:
Das einzige was nicht geht, ist sie direkt als Befehl zu verwenden.
01.
set "Inhalt=dir /s /b /a-d" 
02.
%Inhalt%
Grüße
bastla
Bitte warten ..
Mitglied: 90776
21.07.2010 um 21:59 Uhr
Danke Bastla

hatte ich vollkommen vergessen

Grüsse
Switcher
Bitte warten ..
Mitglied: regedit19
21.07.2010 um 23:05 Uhr
Zitat von 60730:
moin,


ganz ehrlich?

wenn du deine Batche mit den gleichen Schreibfehlern schreibst, wie deine Frage - wird das sehr sehr sehr mühsam.



Ich entschuldige mich, dass ich so viele Rechtschreibfehler gemacht habe, ich wollte meine Frage(n) noch fertig schreiben, bevor mein Akku leer war, darum habe ich nicht mehr auf die Rechtschreibfehler geschaut
Aber danke für den Hinweis!
Bitte warten ..
Mitglied: regedit19
21.07.2010 um 23:07 Uhr
Ich danke euch Allen, für die super Beschreibungen, und die detaillierte Ausführung dieser!

Freu mich sehr, und werde mich dahinterklemmen.....

mfg
regedit19
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Mehrere.csv Dateien zusammenfügen zu einer Datei mit bat (4)

Frage von Piotrney zum Thema Batch & Shell ...

Batch & Shell
gelöst Set-ADUser - Füllen des Felds "Location" funktioniert nicht (2)

Frage von Alex94G zum Thema Batch & Shell ...

Windows Server
gelöst Sichtbares Ausführen einer BAT-Datei mittels GPOs (10)

Frage von DasWombat1993 zum Thema Windows Server ...

Batch & Shell
gelöst Per bat ordner nach und nach bearbeiten (1)

Frage von soritose zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...

Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...