Tech-Ecke / DOS Inhalt / Batch-"Programmierung"

 

Batch-"Programmierung" (Batchdatei/Stapelverarbeitungsdateien)

Einige der hier aufgeführten Befehl bzw. Script-Schnipsel sind nur in der Konsole (CMD ) unter Windows lauffähig und somit in der Rubrik DOS eigentlich falsch platziert. Jedoch möchte ich für Diese keine eigene Rubrik eröffnen und habe sie stattdessen mit einem Windows Logo versehen.

  Datei- und Verzeichnisoperationen

Akutuelles Verzeichnis ermitteln

  @echo %0 liegt in %~dp0
 

Datei/Ordner umbenennen

  ren C:\Test.txt C:\Test.txt  REM absolute Pfadangabe

ren Test.txt Neu.txt  REM relative Pfadangabe
 

Datei kopieren (Zielordner muss vorhanden sein Ordner )

  copy C:\Test.txt C:\Ordner\Test.txt  REM absolute Pfadangabe

copy Test.txt Ordner\Test.txt  REM relative Pfadangabe

copy C:\Test.txt C:\Ordner\Neu.txt  REM Kopieren mit gleichzeitigem Umbenennen
 

Datei verschieben (Zielordner muss vorhanden sein Ordner )

  move C:\Test.txt C:\Ordner\Test.txt

move C:\Test.txt C:\Ordner\Neu.txt  REM Kopieren mit gleichzeitigem Umbenennen
 

Datei löschen

  del C:\Test.txt
 

Ordner erstellen

  md C:\Ordner
 

Ordner löschen (nur bei leeren Ordner möglich)

  rd C:\Ordner
 

löschen von Ordnern inkl. Inhalt

  deltree C:\Ordner REM nur unter echtem DOS

rd C:\Ordner /s /q  REM so gehts auch unter
 

  Variable verwenden

  set Vari=Test
type Ordner\%Vari%.txt
 

  String Operationen

Zeichen in Stringvariable ersetzen

Ersetze "A" durch "B"

  set Vari=ATest
set Vari=%Vari:A=B%
echo %Vari%
 

Einer Stringvariable Zeichen anhängen

  set Vari=Te
set Vari=%Vari%st
echo %Vari%
 

Stringvariable beschneiden

Die letzten 3 Zeichen abschneiden

  set Vari=Test.txt
set Vari=%Vari:~0,-3%
echo %Vari%
 

Nach den ersten 4 Zeichen abschneiden

  set Vari=Test.txt
set Vari=%Vari:~0,4%
echo %Vari%
 

Nach den ersten 2 Zeichen, 4 Zeichen ausschneiden

  set Vari=Test.txt
set Vari=%Vari:~2,4%
echo %Vari%
 

  Alle Dateinamen eines Dateityps als String auslesen

Alle Textdatein im aktuellen Verzeichnis auslesen.

  @Echo Off
for %%p in (*.txt) do echo %%p
 

  Verzeichnisse

Relative Pfadangabe

  REM rückwärts gerichtet
type ..\Ordner\test.txt

REM oder

REM vorwärts gerichtet
type Ordner\test.txt

 

Anwendung über Batchdatei starten ohne zu warten

Dies hat auch den Effekt, dass nach dem Start einer Anwendung das Konsolenfenster sich direkt wieder schließt, ohne auf das Beenden der gestarteten Anwendung zu warten. Der Befehl dazu lautet "Start".

  start C:\Windows\notepad.exe
 

  Auswahlmenü

  @Echo Off

:0
cls
echo Bitte waehlen:
echo --------------
echo 1: Option 1
echo 2: Option 2
echo 3: Option 3
echo --------------
echo.

set choice=
set /p choice=

if '%choice%' == '1' goto 1
if '%choice%' == '2' goto 2
if '%choice%' == '3' goto 3

echo Bitte eine Zahl von 1-3 waehlen
goto :0

:1
echo Option 1 wurde gewaehlt
goto :4

:2
echo Option 2 wurde gewaehlt
goto :4

:3
echo Option 3 wurde gewaehlt
goto :4

:4
REM hier gehts weiter
 

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

[letzte Aktualisierung 20.12.2015]