Freitag, 11. November 2011

Batch Script Eingabe eintippen.

Hier nun ein kleines Batch Skript um eine Eingabe zu machen in einem .bat
Der Text wird in der Variable %INPUT% gespeichert wenn ihr enter drückt, und danach ausgegeben.

@echo off
echo.
set INPUT=
set /P INPUT=Schreibe Input: %=%
echo.
echo Dein Input war: %INPUT%
PAUSE


Mit dem folgenden Befehl könnt ihr den Input in einer Text Datei speichern:
Echo %INPUT% >>C:\Users\Username\Documents\batch\Input.txt
Oder
Echo %INPUT% >>Input.txt
Wenn es im selben Verzeichnis ist.

viel spass

Donnerstag, 10. November 2011

Batch Script choice

Hier eine kleine Anleitung wie man ein zeitgesteuertes Batch Skript macht.
Das Batch Skript startet wartet 10 Sekunden und dann startet es entweder einen Befehl oder wenn man eine Eingabe macht einen anderen Befehl. Eine Art Timer mit dem choice Befehl. Hier zuerst die Hilfeseite:

...........................................................................
choice /?

CHOICE [/C Optionen] [/N] [/CS] [/T Zeitlimit /D Auswahl] [/M Text]

Beschreibung:
    Mit diesem Programm können Benutzer ein Element aus einer
    Auswahlliste auswählen und den Index der Auswahl wiedergeben.

Parameterliste:
   /C    Optionen   Bestimmt die zu erstellende Auswahlliste.
                    Standardliste ist "JN".

   /N               Blendet die Auswahlliste in der Aufforderung aus.
                    Die Meldung vor der Aufforderung wird dennoch
                    angezeigt und die Optionen sind aktiviert.

   /CS              Aktiviert die Unterscheidung von Groß-/Kleinschreibung
                    Standardmäßig wird nicht zwischen Groß- und
                    Kleinschreibung unterschieden.

   /T    Zeitlimit  Bestimmt die Länge der Pause vor der Auswahl
                    in Sekunden. Gültige Wert sind 0 bis 9999.
                    Der Wert 0 bedeutet keine Pause und Verwendung
                    der Standardauswahl.

   /D    Auswahl    Bestimmt die Standardauswahl nach nnnn Sekunden.
                    Zeichen müssen im Auswahlsatz durch die Option
                    /C und nnnn mit Option /T festgelegt werden.

   /M    Text       Legt fest, welche Meldung vor der Aufforderung
                    angezeigt wird. Ohne Angabe wird nur die
                    Aufforderung angezeigt.

   /?               Zeigt diese Hilfe an.

   HINWEIS:
   Die Umgebungsvariable ERRORLEVEL wird auf den Index des
   Schlüssels gesetzt, der aus dem Auswahlsatz ausgewählt wurde. Die
   erste Auswahl gibt einen Wert von 1, die zweite einen Wert von 2
   usw. Falls der Benutzer eine unzulässige Taste drückt, wird ein
   akustisches Signal wiedergegeben. Bei einem Fehlerzustand wird
   ein ERRORLEVEL von 255 wiedergegeben. Beim Drücken auf STRG+Untbr
   oder STRG+C wird ein ERRORLEVEL-Wert von 0 wiedergegeben.
   Führen Sie die ERRORLEVEL-Parameter in absteigender Reihenfolge
   auf, falls Sie diese in einem Batchprogramm verwenden.

Beispiele:
  CHOICE /?
  CHOICE /C JNA /M "Drücken Sie J für Ja, N für Nein oder A für Abbrechen."
  CHOICE /T 10 /C JNA /CS /D J
  CHOICE /C ab /M "Wählen Sie a für Option 1 und b für Option 2."
  CHOICE /C ab /N /M "Wählen Sie a für Option 1 und b für Option 2."

...........................................................................


Hier nun das Skript, einfach im Notepad einfügen und als choice.bat speichern (als andere Datei nicht .txt).

@ECHO Off
title Choice Test
cls
echo.
Goto A
:B
ECHO
Du hast N gedrueckt!
goto C
:A
choice /C:YN /T 10 /D Y /M "
Wenn du N schreibts passiert was sonst nichts."
echo.
if ERRORLEVEL 2 goto B
echo
Du hast nichts gemacht.
:C
Pause
exit



Was macht es genau?
Zuerst geben wir dem ganzen einen Titel und ein bisschen Formatierung:

@ECHO Off
title Choice Test
cls
echo.


Dann sagen wir dem Skript es soll B überspringen und zu A hüpfen.

 Goto A
:B
ECHO Du hast N gedrueckt!
goto C



Bei A gibt es nun die choice Anweisung /C gibt die Möglichkeiten zum Auswählen an /C:12345 oder /C:JN
/T gibt die Zeit in Sekunden bis es Automatisch zu der Auswahl geht die bei /D bestimmt wurde. /M gibt eine Frage(Message) zur Auswahl
 
:A
choice /C:YN /T 10 /D Y /M "Wenn du N schreibts passiert was sonst nichts."
echo.



Nun wollen wir das es bei der Antwort Möglichkeit 2, also N zu B springt und bei Y (default) passiert nichts, oder das was ihr als Default reinschreibt. Und damit die Auswahl nicht nochmals ausgeführt wird springt sie ans Ende zu :C
Den Pause Befehl kann man wegmachen damit es Automatisch ohne Benutzerinteraktion den Default Befehl ausführt wenn es keine Eingabe gibt.

if ERRORLEVEL 2 goto B
echo Du hast nichts gemacht.
:C

Pause
exit


Viel spass