Register for your free account! | Forgot your password?

You last visited: Today at 08:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[ALL]Batchcommands

Discussion on [ALL]Batchcommands within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
elite*gold: 2
Join Date: Jun 2012
Posts: 166
Received Thanks: 32
[ALL]Batchcommands

Hier werden alle Batchcommands aufgelistet und erklärt.

Vorsicht Leerzeichen!

Fehlplazierte oder fehlende Leerzeichen können bei dem Programmieren einer Batch-Datei zu Fehlern führen. Bei den nachfolgenden Beispielen ist also auf die Setzung von Leerzeichen und auf entsprechende Bemerkungen genau zu achten. Scheinbar grundlose Abbrüche beim Ausführen einer Batch-Datei können ebenfalls fehlplatzierten oder fehlenden Leerzeichen geschuldet sein.
@

Schaltet die Ausgabe der Befehlszeile auf dem Bildschirm nur für den aktuellen Befehl aus und ist selbst kein eigener Befehl.

Syntax

@befehl

Stapelanweisung: Ab MS-DOS bis Windows 7

Beispiel:

Inhalt

Code:
echo Diese Zeile wird mit Befehlszeile ausgefuehrt...
@echo und diese ohne!
Ausgabe

Code:
C:\>echo Diese Zeile wird mit Befehlszeile ausgefuehrt...
Diese Zeile wird mit Befehlszeile ausgefuehrt...
und diese ohne!

In Batch Files verhindert "@echo off" zu Beginn des Skriptes die Ausgabe aller (!) Befehlszeilen auf dem Bildschirm bis die Stapelverarbeitung beendet wird, abbricht oder mittendrin ein "@echo on" Befehl erfolgt, um z. B. Befehlszeilen tatsächlich anzuzeigen und dann auszuführen. Kommentare (mit :: oder REM) werden natürlich auch nicht angezeigt. Ist aber nur ein Nebeneffekt.

Code:
@echo off
REM Verhindert, dass dieser Kommentar angezeigt wird.
Ohne @echo off:

Code:
C:\>REM Dieser Kommentar wird so angezeigt
: (Doppelpunkt)

Sprungmarke für ein Unterprogramm bzw. eine Kommentarzeile.
Sprungmarken werden benötigt, wenn mittels der Batchdatei eine Bedingung überprüft und erfüllt bzw nicht erfüllt wird und entsprechend weiter verfahren werden soll.
Mit dem Batchbefehl goto wird die Sprungmarke angesprungen.

Anmerkung:

Der Doppelpunkt hat auch die Funktion der Manipulation von Variablen, wenn er direkt hinter einer Variablen steht. Siehe Kapitel "Variablen" in dieser Publikation.


Syntax

:NAMEDERSPRUNGMARKE

Sprungmarken können eine beliebige Länge haben, unter MS-DOS und älteren Windows-Versionen werden allerdings nur die ersten 8 Zeichen beachtet, der Rest wird ignoriert. Kommen in einer Batch also :Sprungmarke1 und :Sprungmarke2 vor, so wird unter Umständen nur die erste beim Aufruf einer der Beiden gefunden. Also besser :ziel1 oder :1st schreiben. Groß- und Kleinschreibung wird nicht unterschieden.

Beispiel:

Inhalt

Code:
if exist C:\blabla.txt goto EDITBLA
goto END

:: Kommentarzeile, sofern es erforderlich ist, einen Kommentar zu schreiben
:: Zur Unterscheidung von Sprungmarken verwende ich zwei "::"
:EDITBLA
edit c:\blabla.txt

:END
Sofern die Datei C:\blabla.txt existiert, wird sie mit edit geöffnet, sonst wird das Unterprogramm übersprungen und die Batchdatei bei der Marke :END fortgesetzt, also beendet.

Seit die Befehlserweiterungen aktiviert sind, steht in Batchdateien die Sprungmarke :EOF zur Verfügung, welche sich unsichtbar am Ende der Batch-Datei befindet.
CALL

Mit call kann man eine andere Batch-Datei aufrufen. Sobald diese beendet wurde, wird die ursprüngliche Batchdatei weiter ausgeführt.

Beispiel:

Code:
REM Call.cmd
@echo off
echo Diese Batchdatei ruft eine andere auf.
call anderedatei.bat
pause
Code:
REM anderedatei.bat
@echo off
echo Die andere Datei
Die Ausgabe wenn man die Datei Call.cmd startet:

Code:
Diese Batchdatei ruft eine andere auf.
Die andere Datei
{Pause}
Wenn die Befehlserweiterungen aktiviert sind (Standard ab Windows 2000) kann man auch Sprungmarken aufrufen (und auch Parameter übergeben):

Beispiel:

Code:
@echo off
REM Diese Batchdatei ruft eine eigene Sprungmarke auf
echo Vor dem Sprung
call :sprungmarke
echo Nach dem Sprung
pause
goto end

:sprungmarke
echo Sprungmarke aufgerufen!
goto :eof              
:: ":EOF"  führt nicht zum unsichtbaren Ende der Batch-Datei, wie oben beschrieben,
:: sondern führt die Batch-Datei nach dem Aufruf der Sprungmarke fort

:end
exit
Die Ausgabe:

Vor dem Sprung
Sprungmarke aufgerufen!
Nach dem Sprung

Beispiel mit Parameter:

Code:
@echo off
REM Diese Batchdatei ruft eine eigene Sprungmarke auf
echo Vor dem Sprung
call :sprungmarke meinParameter
echo Nach dem Sprung
pause
goto end

:sprungmarke
echo Sprungmarke aufgerufen und Parameter %1 uebergeben!
goto :eof

:end
exit
Die Ausgabe:

Code:
Vor dem Sprung
Sprungmarke aufgerufen und Parameter meinParameter uebergeben!
Nach dem Sprung

Code:
goto :eof
Dieser Befehl springt automatisch zum Ende der Batchdatei (beendet die aktuelle Prozedur)
CLS

Mit cls (clear screen) wird der Bildschirm gelöscht.

Syntax

cls

Interner Befehl: Ab MS-DOS bis Windows 7

Beispiel:

Inhalt

Code:
@echo off
echo Hier schreibe ich jetzt ganz viel Text.
echo Hier kann ich z.B. hinschreiben, dass ich jemanden mag.
echo.
echo Aber den Text sieht man gleich sowieso nicht mehr... Hihi!
cls
echo War irgendetwas?
pause>nul

Ausgabe

Code:
War irgendetwas?
CMD

Das Programm, das es möglich macht, DOS-Befehle auf einem NT-System zu benutzen. CMD ist die NT-Entsprechung von COMMAND.


Syntax:

cmd /a|/u|/q|/d|/e (ON|OFF)|/f (ON|OFF)|/v (ON|OFF)|/c befehl|/s|/k|/y

Konsole: Ab Windows NT 4.0 bis Windows NT 6.1 (Windows 7)

Beispiel:

Inhalt

Code:
cmd
Ausgabe (unter XP)

Code:
C:\>cmd
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>
Ausgabe (unter Vista)

Code:
C:\>cmd
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. Alle Rechte vorbehalten.

C:\>
Ausgabe (unter Win 7)

Code:
C:\>cmd
Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Alle Rechte vorbehalten.

C:\>
Ausgabe (unter Win 8 Beta)

Code:
C:\>cmd
Microsoft Windows [Version 6.2.8250]
Copyright (c) 2012 Microsoft Corporation. Alle Rechte vorbehalten.

C:\>
COLOR

Mit dem Befehl COLOR kann man die Vorder- und Hintergrundfarbe verändern. Die COLOR Werte bestehen aus zwei HEX-Werten, wobei der erste HEX-Wert für die Hintergrundfarbe und der zweite HEX-Wert für die Vordergrundfarbe steht.
HEX-Wert Farbe
0 Schwarz
1 Dunkelblau
2 Dunkelgrün
3 Blaugrün
4 Dunkelrot
5 Lila
6 Ocker
7 Hellgrau

HEX-Wert Farbe
8 Dunkelgrau
9 Blau
A Grün
B Zyan
C Rot
D Magenta
E Gelb
F Weiß

Der folgende Befehl ergibt z.B. einen grünen Hintergrund mit weißer Schrift.

Code:
COLOR 2F
COMMAND

Startet einen neuen Kommandointerpreter. Dieser kann mit exit wieder beendet werden.

Syntax:

command Laufwerk:Pfad Gerät /e /l /u /P /MSG /LOW (/Y (/c|/k) Befehl)

Konsole: Ab MS-DOS bis Windows XP

Beispiel:

Inhalt

Code:
command
Ausgabe (unter Windows 95)

Code:
C:\WINDOWS>command

Microsoft(R) Windows 95
   (C)Copyright Microsoft Corp 1981-1996.

C:\WINDOWS>
ECHO

Gibt einen Text aus oder schaltet die Befehlszeilen an/aus. Wenn ein Text ausgegeben wird, können dort auch Variablen angezeigt werden, wie z. B. die Variable %ver% (in Windows XP %os%).

Syntax:

echo text|ON|OFF oder alternativ echo.[text]

Interner Befehl: Ab MS-DOS bis Windows NT 5.1 (XP)

Beispiel:

Inhalt

Code:
@echo off
echo Die aktuelle Datei heißt %0.
echo Die aktuelle Version Ihrer Befehls-Konsole oder -OS heißt %ver%
Ausgabe

Code:
Die aktuelle Datei heißt beispiel.bat.
Die aktuelle Version Ihrer Befehls-Konsole oder -OS heißt Windows NT

Mit echo. können Sie zudem leere Zeilen ausgeben. Beispiel:
Inhalt

Code:
@echo off
echo Jetzt gibt es 3 Leere Zeilen zu sehen!
echo.
echo.
echo.
echo So! Da waren sie.
Ausgabe

Code:
Jetzt gibt es 3 Leere Zeilen zu sehen!



So! Da waren sie.
Benutzereingaben mit ECHO

Mit Hilfe des echo-Befehls können Sie auch in einem Skript Benutzereingaben simulieren, indem Sie den Pipe-Operator | verwenden.
Beispiel: Uhrzeit anzeigen ohne Nachfrage
Das normale Verhalten des time-Befehls ist, die aktuelle Zeit der verwendeten Systemuhr anzuzeigen und in der nächsten Zeile die Eingabe einer neuen Uhrzeit zu erwarten. Drückt man auf Enter, bleibt die Systemzeit unverändert. Will man die Zeit nur anzeigen lassen (z. B. in einer Batchdatei vor und nach einer Befehlsfolge, um zu messen, wie lange der PC dafür braucht), lässt sich die Betätigung der Enter-Taste durch einen entsprechenden echo-Befehl ersetzen.

Code:
echo.|time
Über den Pipe-Mechanismus lässt sich darüber hinaus die Zeile „Geben Sie die neue Uhrzeit ein:“ unterdrücken:

echo.|time|find /v "neue"

Dabei ist die Groß-/Kleinschreibung von "neue" zu beachten oder der Schalter /I zu verwenden, denn find ist case-sensitiv! Diese Beispiele dienen allerdings nur zur Demonstration, denn die Zeitausgabe wäre auch ohne Pipes (aber erst ab Windows 2000) möglich mit:

time /t

oder einfach:

echo %time%

Sehr nützlich ist das echo-Piping auch zur Übergabe von Benutzereingaben, welche von einzelnen Befehlen abgefragt werden.
Beispiel: Überprüfung einer Festplatte

chkdsk c: /f /r

kann (da es sich beim Laufwerk C um das Systemlaufwerk handelt) erst nach einem Systemstart ausgeführt werden. Normalerweise müsste der Benutzer deswegen den Systemstart durch Eingabe von "Y" bestätigen. Diese Aktion kann man in einem Batch so abbilden:

echo y | chkdsk c: /f /r

.
FOR

Ermöglicht die Schleifenbearbeitung.

Syntax:

for Variable in Satz do Befehl [Parameter]

Interner Befehl: Ab MS-DOS bis Windows NT 6.1 (Windows 7)

Beispiel:

Zeigt alle Dateien im Verzeichnis %temp% an. Es werden nur Dateien, keine Verzeichnisse angezeigt. Um Verzeichnisse anzuzeigen siehe Liste der FOR-Optionen unten. Der Parameter /R bewirkt, dass alle Unterverzeichnisse mit einbezogen werden (Rekursive Schleife).

ACHTUNG:

Die Variable darf nur aus einem Buchstaben bestehen! "%t" ist erlaubt, "%test" nicht! Bei der Verwendung mehrerer Befehle muss zwischen "DO" und der Klammer "(" ein Leerzeichen sein.

Falsch

for Variable in Satz do(

RICHTIG

for Variable in Satz do (
Befehl1
Befehl2
)

Inhalt

@echo off
for /R %temp% %%f in (*.*) do (
echo %%f
)
REM Den Befehl könnte man auch einzeilig schreiben.
pause

Ausgabe

(Alle Temp-Dateien)
Bitte beliebige Taste drücken...


Zählschleifen

Mit solchen Schleifen kann man Aktionen eine bestimmte Anzahl oft ausführen. Dazu muss man den Parameter /L angeben.

Syntax: for /L {Variable} IN (Startzahl, Schrittweite, Endzahl) DO (Aktion)

REM Schreibe Text 5 Mal
for /L %%N IN (1, 1, 5) DO echo Nummer %%N

Ausgabe:

C:\>for /L %%N IN (1, 1, 5) DO echo Nummer %%N

C:\>echo Nummer 1
Nummer 1

C:\>echo Nummer 2
Nummer 2

C:\>echo Nummer 3
Nummer 3

C:\>echo Nummer 4
Nummer 4

C:\>echo Nummer 5
Nummer 5

verschachtelte Zählschleife:

for /L %%N IN (1, 1, 5) DO
for /L %%N IN (1, 1, %N)DO echo Nummer %N

Ausgabe:

C:\>for /L %%N IN (1 1 5) DO (for /L %N IN (1 1 %N) DO echo Nummer %N )

C:\>(for /L %%N IN (1 1 1) DO echo Nummer %N )

C:\>echo Nummer 1
Nummer 1

C:\>(for /L %%N IN (1 1 2) DO echo Nummer %N )

C:\>echo Nummer 1
Nummer 1

C:\>echo Nummer 2
Nummer 2

C:\>(for /L %%N IN (1 1 3) DO echo Nummer %N )

C:\>echo Nummer 1
Nummer 1

C:\>echo Nummer 2
Nummer 2

C:\>echo Nummer 3
Nummer 3

C:\>(for /L %%N IN (1 1 4) DO echo Nummer %N )

C:\>echo Nummer 1
Nummer 1

C:\>echo Nummer 2
Nummer 2

C:\>echo Nummer 3
Nummer 3

C:\>echo Nummer 4
Nummer 4

C:\>(for /L %%N IN (1 1 5) DO echo Nummer %N )

C:\>echo Nummer 1
Nummer 1

C:\>echo Nummer 2
Nummer 2

C:\>echo Nummer 3
Nummer 3

C:\>echo Nummer 4
Nummer 4

C:\>echo Nummer 5
Nummer 5

Weitere Möglichkeiten der FOR-Schleife:

syntax-FOR-Files

FOR %%parameter IN (set) DO command

syntax-FOR-Files-Rooted at Path

FOR /R [[drive:]path] %%parameter IN (set) DO command

syntax-FOR-Folders

FOR /D %%parameter IN (folder_set) DO command

syntax-FOR-List of numbers

FOR /L %%parameter IN (start,step,end) DO command

syntax-FOR-File contents

FOR /F ["options"] %%parameter IN (filenameset) DO command

FOR /F ["options"] %%parameter IN ("Text string to process") DO command

syntax-FOR-Command Results

FOR /F ["options"] %%parameter IN ('command to process') DO command

Beispiel: Sucht im Ordner C:\Windows\Temp rekursiv nach Dateien mit dem Namen //temp.dat// und gibt die Liste aus. Die Option "token=*" ist notwendig, damit die Ausgabe zeilenweise gelesen wird und auch Pfade mit enthaltenem Leerzeichen ausgegeben werden können.

for /F "tokens=*" %%f in ('dir /S /b C:\Windows\Temp\temp.dat') do (
echo "%%f".
)

Zählvariablen in Zeichenketten einbetten

Um die Zählvariable %%f (%f auf der Kommandozeile) in einer Zeichenfolge zu verwenden, wird einfach die Variable in dem String eingebettet


FOR %%f IN (A B C D E) DO (
echo mitten%%fdrinnen
)

GOTO

Mit dem Batchbefehl goto wird eine Sprungmarke : (s.o.) angesprungen.

Syntax

goto NAMEDERSPRUNGMARKE

Beispiel

Siehe unter : (Doppelpunkt).
IF

Der IF Befehl ermöglicht eine einfache Verzweigung und wird oft zusammen mit dem GOTO Befehl eingesetzt. IF ermöglicht hierbei sowohl die Prüfung auf eine Gleichheit als auch auf das Vorhandensein von Dateien.

Beispiel 1:

@echo off
IF exist c:\temp\my.log echo.>c:\temp\my.log
echo.Log Datei erstellt>>c:\temp\my.log

Beispiel 1 prüft ob eine Logdatei vorhanden ist und erstellt ggf. eine Neue.

Beispiel 2:

@echo off
IF "%COMPUTERNAME%" == "Bastie" GOTO WAHR
REM hier landet man wenn der if-Ausdruck falsch ist
GOTO WEITER
:WAHR
REM hier landet man wenn der if-Ausdruck wahr ist
echo Willkommen Zuhause
REM Jetzt wird der if Zweig verlassen
GOTO WEITER

:WEITER
echo.Have a nice Day!

Beispiel 3:

IF "%COMPUTERNAME%" == "Bastie" (
echo Willkommen zu Hause!
) ELSE (
echo Du bist auf Computer: %COMPUTERNAME%
)
echo. Schönen Tag noch!

Beachten Sie, bei der Prüfung von Umgebungsvariablen niemals

IF %Umgebungsvariable% == Prüfwert ...

zu schreiben, wenn die Umgebungsvariable nicht gesetzt ist; Sie erhalten sonst einen Syntaxfehler. Der Parameter /i unterbindet eine Differenzierung der Groß-/Kleinbuchstaben.

ACHTUNG:

Bei der Verwendung mehrerer Befehle muss zwischen Bedingung und der Klammer "(" ein Leerzeichen sein.

Falsch

IF Bedingung(

Richtig

IF Bedingung (
Befehl1
Befehl2
)

Syntax Vergleiche

IF <NOT> Variable1==Variable2

IF %Variable% EQU %Variable2% (Befehl) An die Stelle von EQU kann jede der Optionen gesetzt werden.

NOT Der Befehl wird nur ausgeführt, wenn die Bedingung NICHT Wahr ist. Optional.
== ist gleich
EQU ist gleich
NEQ nicht gleich
LSS kleiner als
LEQ kleiner als oder gleich
GTR größer als
GEQ größer als oder gleich

Hinweis zu UND bzw. ODER Verknüpfung

Eine UND bzw. ODER Verknüpfung von zwei Bedingungen scheint nicht direkt möglich zu sein. Beim Vergleichen von Strings hilft es aber eventuell wenn man die beiden Strings miteinander verkettet.

Beispiel

set A=true
set B=false
if "%A%;%B%"=="true;true" (
echo A und B sind beide TRUE
) else (
echo entweder A oder B ist nicht = TRUE
)

Als Workaround können mehrere aufeinanderfolgende IFs zu einer UND bzw. ODER Verknüpfungen kombiniert werden. Bei einer ODER Verknüpfung wird der Code ausgeführt, sobald eine der Bedingungen wahr ist. Wenn alle Bedingungen geprüft wurden, und keine erfolgreich war, werden die Befehle im ELSE Zweig ausgeführt.

set A=true
set B=false
if "%A%"=="true" goto :WAHR // Diese Zeile ist doch erfüllt, also sollte der in :WAHR springen
if "%B%"=="true" goto :WAHR
REM keine der Bedingungen ist zu :WAHR gesprungen, wir sind also im ELSE Zweig
REM hier waere :FALSCH

echo Weder A noch B ist TRUE
goto :eof

:WAHR
echo A oder B ist TRUE

Für ein UND wird in den ELSE Zweig gesprungen ( :FALSCH ) sobald eine der Bedingungen nicht zutrifft. Nur wenn alle Bedingunen zutreffen wird der Code ausgeführt.

set A=true
set B=false
if "%A%"NEQ"true" goto :FALSCH
if "%B%"NEQ"true" goto :FALSCH

REM wird sind durch die IFs gekommen, also hat keine der Bedingungen angeschlagen.
REM hier waere die :WAHR Sprungmarke

echo A und B sind beide TRUE
goto :eof

:FALSCH
echo A oder B (oder beide) sind FALSE

Diese beiden Beispiele lassen sich einfach durch Kopieren der "IF..." Zeile um beliebig viele Bedingungen erweitern. Ein mischen von UND und ODER Verknüpfungen ist leider nicht ohne weiteres möglich.
PAUSE

Unterbricht die Abarbeitung der Batchdatei und wartet auf einen Tastendruck.

Syntax

pause

Interner Befehl: Ab MS-DOS bis Windows NT 5.1 (XP)

Beispiel 1:

Inhalt

@echo off
echo Willkommen zur Batchdatei %0 !!!
echo.
echo Die Batchdatei wird auf einer neuen Seite fortgeführt.
pause
cls
echo Hier fängt meine Batchdatei an...
pause

Ausgabe

Willkommen zur Batchdatei beispiel.bat !!!

Die Batchdatei wird auf einer neuen Seite fortgeführt.
Bitte beliebige Taste drücken...

(Neue Seite)

Hier fängt meine Batchdatei an...
Bitte beliebige Taste drücken...


Beispiel 2:

Inhalt

@echo off
echo Diese Zeile wird angezeigt anstelle von "Bitte beliebige Taste drücken..."
pause > NUL

Ausgabe

Diese Zeile wird angezeigt anstelle von "Bitte beliebige Taste drücken..."

Um eine Pause für eine bestimmte Zeitdauer vorzugeben, kann der ping-Befehl „missbraucht“ werden. Das folgende Beispiel erzeugt eine Pause von genau 10 Sekunden durch die Ausgabeumleitung >nul wird jegliche Meldung unterdrückt.

ping 1.2.3.4 -n 1 -w 10000 > nul

PUSHD / POPD

pushd wechselt zum angegebenen Pfad und speichert den aktuellen Pfad bis zum Aufruf von popd.

popd wechselt zum gespeicherten Pfad.

Die Befehle können geschachtelt werden.


Syntax

pushd pfad

popd


Beispiel:

C:\WINDOWS>pushd c:\temp
C:\temp>pushd c:\
C:\>popd
C:\temp>popd
C:\WINDOWS>

REM

REM leitet einen Kommentar ein. Die Zeile wird ignoriert, beachten Sie jedoch, dass REM von einem Leerzeichen / Tabulator gefolgt werden muss. Alternativ dazu werden häufig auch Sprungmarken eingesetzt, da hier nur ein statt vier Zeichen verwendet werden muss. Häufig wird jedoch die Sprungmarke zur besseren Übersicht doppelt hintereinander geschrieben ::

Beispiel:

REM kill iexplore.exe
:kill iexplore.exe
::kill iexplore.exe

START

Startet ein Programm.

Syntax:

START ["Titel"] [/D <Pfad>] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME] [/WAIT] [/B] [Befehl/Programm] [Parameter]

Optionen:

"Titel" Der Titel des neuen Fensters.
/D <Pfad> Startverzeichnis
/I Die neue Umgebung soll die dem CMD.EXE beim Aufruf übergebene sein und nicht die aktuelle Umgebung.
/MIN Startet das Fenster minimiert.
/MAX Startet das Fenster maximiert.
/SEPARATE Startet 16-Bit-Windows-Programm in separatem Speicherbereich.
/SHARED Startet 16-Bit-Windows-Programm in gemeinsamen Speicherbereich.
/LOW Startet Anwendung in IDLE-Prioritätsklasse.
/NORMAL Startet Anwendung in der NORMAL-Prioritätsklasse.
/HIGH Startet Anwendung in der HIGH-Prioritätsklasse.
/REALTIME Startet Anwendung in der REALTIME-Prioritätsklasse.
/WAIT Startet die Anwendung und wartet auf das Ende.
/B Startet die Anwendung ohne ein neues Fenster zu öffnen. Die Anwendung ignoriert STRG+C. Wenn die Anwendung nicht selbständig STRG+C überprüft, ist STRG+UNTBR die einzige Möglichkeit, um die Anwendung abzubrechen.
/? Gibt die Hilfe aus.

Hier eine Liste der nützlichen (System)Programme, die man so ausführen kann:

regedit.exe = neuer Registrierungseditor
(regedt32.exe = älterer Registrierungseditor)

explorer.exe = Windows Ordner Explorer
taskmgr.exe = Windows Taskmanager
taskeng.exe = Aufgabenplanungsmodul
calc.exe = Taschenrechner
mshta.exe = Scripthost für HTA (HTML) Scripting

W/CScript.exe = Beides Bestandteil des Windows Scripthostes für JS und VBS

iexplore.exe = Microsoft Windows Internet Explorer, Standardbrowser für Windows
firefox.exe = Mozilla Firefox, Internetbrowser
dialer.exe = Windows-Hilfeprogramm für DFÜ Einwahlverbindungen
Notepad.exe = Standard-Textbearbeitungsprogramm von Microsoft

cmd.exe = Microsoft Windows Befehlsprozessor für Batch
winword = Microsoft Word
Variablen

Es gibt zweierlei Arten von Variablen: Scriptvariablen und Systemvariablen. Die Scriptvariablen werden innerhalb von Schleifen eingesetzt, beginnen mit % und einem frei wählbaren Zeichen, oder einer Zeichenfolge. Systemvariablen müssen von % begonnen und von % abgeschlossen werden. Sie sind fest definiert. Die Variable %0% hat stets den Namen der aktuellen Datei. Die Variable %ver% hat immer den Namen der aktuellen Betriebssystemversion. Unter Windows XP muss %os% statt %ver% verwendet werden.

Gibt man unter Windows Vista und 7 den Befehl echo %os% ein, so gibt der Computer die Version des Systems aus, auf dem das System basiert. Unter Windows Vista und Windows 7 gibt es einen Befehl namens ver, mit dem man die Version direkt angezeigt bekommt. Es gibt zwar keine direkte Variable bei Vista und Windows 7, die das Betriebssystem definiert, jedoch kann man das mit folgendem Trick umgehen:

@echo off ' Autobefehlsanzeige ausgeschaltet
ver > TMP.dat ' speichert die Ausgabe des Befehls in der Datei TMP.dat
Set /p ver= < TMP.dat ' definiert die Variable des Betriebssystems. (NUR TEMPORÄR !)
echo %ver% ' gibt nun die definierte Variable aus.
pause>nul ' pause


Nützliche Stringoperation für Variablen:

Teilstring

Syntax

var:~n,m

Ergibt den Teilstring von var, beginnend mit dem n-ten Zeichen ( von links) und einer Länge von m Zeichen. Gezählt wird ab 0, d.h. das erste Zeichen hat die Position 0 und nicht 1. Werden negative Werte verwendet, so wird vom Ende des Strings /von rechts nach links) gezählt.

Beispiel:

Inhalt:

set str=myfile.bat
set name=%str:~0,6%
echo %name%

In diesem Beispiel wird der Teilstring von str vom ersten Zeichen an mit einer Länge von 6 Zeichen ausgegeben.

Ausgabe:

myfile

Stringsubstitution

Syntax

var:str1=str2

Mithilfe des Syntax var:str1=str2 kann die Zeichenkette str1 des Inhalts der Variable var durch str2 ersetzt werden.

Beispiel:

Inhalt:

set str="mycommand /p /m file"
echo %str%
set str=%str:/p /m=/t %
echo %str%

In diesem Beispiel werden die Optionen /p /m des Befehls mycommand durch die Option /t ersetzt.

Ausgabe:

"mycommand /p /m file"
"mycommand /t file"


Benutzereingaben in Variablen speichern

Um eine Benutzereingabe in eine Variable speichern zu können wird die Option /p benötigt

Beispiel:

set /p EINGABE=Variable Eingeben:
echo %EINGABE%


Mit Variablen Rechnen

Rechnungen mit Variablen sind erst mit der Option /a möglich

Beispiel:

set WERT1=2
set WERT2=21
set /a WERT1 = %WERT1%*%WERT2%
echo %WERT1%
-In*FamouZz is offline  
Old 08/28/2012, 20:30   #2




 
bloodx's Avatar
 
elite*gold: 55
Join Date: Mar 2006
Posts: 4,582
Received Thanks: 1,539
[code ] [/code ] ftw? ._.
bloodx is offline  
Old 08/28/2012, 20:39   #3
 
elite*gold: 2
Join Date: Jun 2012
Posts: 166
Received Thanks: 32
ouhh sry vergessen zu machen xD
-In*FamouZz is offline  
Old 08/28/2012, 21:17   #4

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
Schriftgröße bitte halb so groß o_O
und das gehört eigentlich in die Tutorial Section!
マルコ is offline  
Old 08/28/2012, 21:56   #5


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Arrow General Coding -> Coding Tutorials

#moved
MrSm!th is offline  
Old 08/31/2012, 00:41   #6
 
SkillartzHD's Avatar
 
elite*gold: 60
Join Date: Oct 2011
Posts: 2,910
Received Thanks: 16,311
Schriftgröße ist etwas übertrieben sonst ist es ganz ok.
Grezz
SkillartzHD is offline  
Reply




All times are GMT +1. The time now is 09:02.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.