Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
  


informatik artikel (Interpretation und charakterisierung)

Parameter in batch files


1. Java
2. Viren

Mit dem Aufruf eines Batch Files können vom DOS Prompt auch Parameter übergeben werden. Wenn man den Inhalt eines Verzeichnisses anzeigen möchte, ohne sich jedoch in diesem Verzeichnis zu befinden, so muß man einen Parameter angeben. Parameter werden beim Aufruf an den Programmnamen angefügt und mit aufsteigender Reihenfolge als %1, %2, %3 usw. bezeichnet. Greifen wir auf Bsp.1 zurück:

Bsp.1b: (D.BAT)

dir %1 %2 /p /o /a


---Monitor---
C:\\> d c:\\dos --- "c:\\dos" ist Parameter 1 und wird als %1 angesprochen
C:\\> dir c:\\dos /p /o /a --- %2 ist nicht angegeben und wird weggelassen

[Auflistung aller Dateien im Verzeichnis C:\\DOS]


C:\\> --- D.BAT beendet

---Monitor---

So kann man aus einem beliebigen Verzeichnis den Inhalt eines anderen Verzeichnisses abfragen, ohne dorthin wechseln zu müssen.

Bsp.2: (XC.BAT)

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen

if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen
xcopy %1 %2 /v /s /e

:ende

Mit diesem Batch (XC.BAT) wird der DOS Befehl "xcopy" benutzt, um Dateien oder Verzeichnisse zu kopieren. Es werden an den Befehl noch die Parameter /v /s und /e angehängt, die bewirken, daß alle Dateien überprüft werden und auch alle Unterverzeichnisse kopiert werden. Ein weiterer Vorteil dieses Batch Files ist, daß "xcopy" nun einfach durch "xc" abgekürzt wird.
Die Abfrage "if %1!==! goto ende" bewirkt, daß falls kein Parameter (%1) angegeben wurde (%1! = !), zum Sprungziel "ende" gesprungen wird.


---Monitor---
C:\\DOS> xc *.* a:\\ --- alle Dateien (mit Unterverzeichnissen) auf A: kopieren

[Auflistung der kopierten Dateien] --- diese Auflistung kann sich über mehrere Seiten erstrecken


C:\\DOS> --- Batch File beendet

---Monitor---

Das ">" Zeichen
Um zu verhindern, daß alle Dateien, die kopiert wurden aufgelistet werden, muß man ">nul" an den "xcopy" Befehl anhängen. Dadurch wird die Anzeige ins Datennirvana umgeleitet und nicht am Monitor ausgegeben.
Zusätzlich kann man noch eine Fehlerprüfung einbauen, die eine Meldung ausgibt, falls ein Fehler beim Kopieren aufgetreten sein sollte. Dies ist von Vorteil, da man ja die Fehlermeldungen jetzt auch nicht mehr sehen kann.

Bsp.2a: (XC.BAT)

@echo off
if %1!==! goto ende

if %2!==! goto ende
echo Kopiere Dateien und Unterverzeichnisse... --- Meldung, die Ausgegeben wird

xcopy %1 %2 /v /s /e >nul
if errorlevel 1 goto error --- Falls xcopy den Errorlevel 1 zurückgibt, wird zur Fehlermeldung gesprungen
goto ende --- Fehlermeldung übergehen und zum Ende des Batch Files springen.
:error

echo FEHLER BEIM KOPIEREN AUFGETRETEN!

:ende

Das ">" Zeichen kann auch benutzt werden, um Daten an den Drucker zu senden (LPT1).
Um die Autoexec.bat mit Hilfe eines Batch Files und dem type Befehl auszudrucken, müsste das Batch File so aussehen: (Vorausgesetzt, der Drucker ist an LPT1 angeschlossen)
@type c:\\autoexec.bat >lpt1
Um eine einzige Zeile ausdrucken, kann man den bekannten echo Befehl benutzten:
@echo Das ist ein Probeausdruck. >lpt1
Weiters kann man natürlich auch an COM1 und COM2 Befehle senden.
Um zB das Modem an COM2 zurückzusetzten (Modem Befehl: ATZ), muß man folgendes Bat erstellen:

@echo ATZ >com2
Natürlich können alle diese Befehle auch direkt aus dem DOS Prompt (C:\\>) eingegeben werden, aber falls man sie öfters braucht, ist es sinnvoll diese in ein Batch File zu schreiben, um sich mühsame Tipparbeit zu ersparen.
Um hier den Nutzen von Parametern aufzuzeigen folgendes Beispiel:

---SEND.BAT---

@echo off
echo %1 >%2

---SEND.BAT---
Mit "send" kann nun entweder eine Zeile ausgedruckt werden, oder ein Befehl ans Modem geschickt werden. Wenn die Eingabe so aussieht: "send Das_ist_ein_Probeausdruck lpt1" wird "Das_ist_ein_Probeausdruck" auf LPT1 (Druckeranschluss) ausgegeben. Zu Beachten ist, daß keine Leerzeichen in der zu Druckenden Zeile vorkommen, da das schon %2, also der zweite Parameter wäre.
Wenn man aber "send ATZ com2" eingibt, so wird das Modem an COM2 (falls vorhanden) zurückgesetzt.

Eine weitere Variante, um sich Tipparbeit zu ersparen:

---SEND.BAT---

@echo off
if %2==m set sendto=com2

if %2==d set sendto=lpt1
echo %1 >%sendto%
set sendto= --- Die Umgebungsvariable "sendto" wird gelöscht

---SEND.BAT---
Falls man für den zweiten Parameter (%2) "m" oder "d" angibt, wird die Umgebungsvariable "sendto" automatisch auf "com2" (für "m" = Modem) bzw. "lpt1" ("d" steht für Drucker) gesetzt. Umgebungsvariablen werden von zwei Prozentzeichen eingeschlossen (%sendto%) und mit dem set Befehl gesetzt und gelöscht.

 
 

Datenschutz
Top Themen / Analyse
indicator FIREWALL GATEWAYS-
indicator Der Drucker
indicator MS-ACCESS 2.0
indicator Tokenring -
indicator Versuchsdurchführung
indicator Wie ist ein Computervirus aufgebaut?
indicator Abstrakte Klassen
indicator Dual Speed Hubs
indicator Serielle Schnittstelle -
indicator What do I need to get started?


Datenschutz
Zum selben thema
icon Netzwerk
icon Software
icon Entwicklung
icon Windows
icon Programm
icon Unix
icon Games
icon Sicherheit
icon Disk
icon Technologie
icon Bildung
icon Mp3
icon Cd
icon Suche
icon Grafik
icon Zahlung
icon Html
icon Internet
icon Hardware
icon Cpu
icon Firewall
icon Speicher
icon Mail
icon Banking
icon Video
icon Hacker
icon Design
icon Sprache
icon Dvd
icon Drucker
icon Elektronisches
icon Geschichte
icon Fehler
icon Website
icon Linux
icon Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.
dsolution