.bat-Dateien - Ein Beispiel

Da in letzter Zeit mehrer PN´s wegen bat dateien, wofür man sie benutzen kann und wie man bestimmte funktionen erreicht. gekommen sind hab ich zum spaß mal eine kleine .bat-Datei angefertigt.
In letzter Zeit wurde fragten auch sehr viel ob man mit Batch programme erstellen kann, die so etwas wie eine Eingabeaufforderung als Funktion haben.
Hier mal ein kleines solches Programm:

Code:
@echo off
REM Bewirkt, dass Befehle nicht angezeigt werden.

CLS
REM Loescht den Bildschirm.

echo.
REM Gibt eine leere Zeile aus.

echo ----------------------------------------------------------
echo LittleCMD 0.1
echo ?2006 by DolphVS
echo ----------------------------------------------------------
REM Gibt den danach folgenden Text aus.

echo.
echo.
ECHO --------------------Start command-------------------------
ECHO.
IF [%1] == [] ECHO Kein Befehl angegeben! ..::!!  Fuer Hilfe Parameter -? benutzen !!::..
REM Falls nichts angegeben ist gib aus "Kein Befehl angegeben! ..."

IF [%1] == [-?] ECHO -shutdown = Shutdown your PC!                                                   -restart = Restarts your PC                                                     -netview = Show PCs in your network                                             -ping [IP/Hostname] = Erreichbarkeit eines Computers pruefen                    -ipconfig = Zeigt aktuelle Kofigurationswerte des TCP/IP-Netzwerkes an.
REM Falls der Switch -? gegeben ist zeige Funktionen.

IF [%1] == [-shutdown] shutdown -t 0 -f
IF [%1] == [-restart] shutdown -t 0 -r -f
IF [%1] == [-netview] NET VIEW
IF [%1] == [-ping] PING %2
IF [%1] == [-ipconfig] ipconfig /all
REM Befehle befolgen.

ECHO.
ECHO --------------------End command---------------------------
ECHO.
PAUSE
REM Sorgt dafuer, dass das Programm sich nicht automatisch beendet.

CLS

Alles was hinter REM steht sind Kommentare.

Die Funktionen die dieses Programm kann können auch leicht selbst in der CMD eingegeben werden, die die nur ein kleines bisschen sich mit der Eingabeaufforderung auskennen werden diese funktionen alle kenne. Dieses programm ist nur um zu zeigen, für was man Batch gebrauchen könnte.

Ihr könnt entweder den Code kopieren und als .bat speichern oder einfach die .exe-datei und die .bat-Datei im Archiv runterladen (hier), die exe ist genau das gleiche nur halt in das exe-Format konvertiert.

DolphVS
 
Der Code oben geht net, da fehlt der Befehl um ne Eingabe abzufragen
 
Führe es mit parameter in der Eingabeaufforederung aus.
z.B. so:
littleCMD -?
littleCMD -ipconfig
littleCMD -ping
 
OK
Aber kannst du mir trozdem sagen, mit welchem Befehl man eine Usereingabe abfragt?
Würde mich brennend interresieren
 
Die erste Usereingabe nach dem Dateipfad/datei ist die Varable %1, nach einem Leerzeich kommt gleich %2, geht so weiter bis %9.
zB
Code:
C:\Pfad\Datei.bat abcd cdef ghi jklm  ...

%1 = abcd
%2 = cdef
%3 = ghi
%4 = jklm

Man muss einfach die Variable %1-%9 eingeben und nimmt die jeweiligen Eingabe/Parameter
Hoffe, dass man es einigemasen kapiert.
SIehe Code^^^^
 
Ich meinte eher einen Befehl, um aus der Datei heraus eine Eingabe abzufragen, also dass man mit laufender Batch-Datei in ne Zeile seinen Wert eingeben muss/kann, ohne Kommandozeilenaufruf
 
Code:
set /P var=Beschreibungstext-für-die-eingabe
if %var%=="something" then (do something)

mfg $oul
 
Hier mal ein Beispiel:

Code:
@echo off
    set /P w= [i]nstallieren / [d]eInstallieren?
    REM die option /I beim if bewirkt, dass nicht
    REM zwischen Gross und Kleinschreibung
    REM unterschieden wird.
    if /I "%w%"=="i" goto Install
    if /I "%w%"=="d" goto Deinstall
goto ende

:Install
    echo "installieren" ausgewaehlt
goto ende

:Deinstall
    echo "deInstallieren" ausgewaehlt
goto ende


:ende
    echo.
    pause
 
Danke, aber hab nochmal ne Frage:
Kann man auch 2 oder mehr Befehle/Fenster/wie auch immer gleichzeitig laufen lassen?
 
2 fenster geht leider nicht (wie bei bash unter linux z.b.) da die eine batch-datei stoppt, eine andere z.b. ausführt und erst dann mit dem eigenen programmfluss fortfahrt.
mehr befehle zur gleichen zeit ist was mir bekannt ist mit der windows konsole nicht möglich (stellt ja so eine art von DOS dar, und DOS ist nicht multitaskingfähig)

eine frage von 2 minuten wenn man google mit 3 suchbegriffen um den finger wickelt.

lg
 
Hm, dann kommt mir aber noch ein Gedanke:
Ich kann doch mit C++ Batch-Dateien aufrufen?
Damit müsste ich doch dann auch mehrere starten können, die dann Zeitgleich ablaufen?
 
Bei C++ wird soweit ich weiß auch das Programm von oben nach unten abgearbeitet, also werden die batchs nacheinander (mit geringer Zeitverzoegerung).
Also genau zeitgleich wirst du es nicht schaffen (die 2 Dateien in den Autostart ? legen (vielleicht), dort wird ja alles gleichzeitig ? ausgeführt.
 
ja exakt gleichzeitig geht sowieso ned ^^ aber man kann das ja so einfach ausprobieren, warum fragst denn in diesem forum, google tuts auch ...
probiers aus ...

int main()
{...

system("notepad.exe");
system("calc.exe");

...
}

mit den paar takten unterschied wirst du ja wohl kaum probleme haben ^^
(?-prozessor technik --> schule, kanns nicht mehr hören ^^)

lg
 
Jo, also 1-2 Sek unterschied machen nix, nur soll halt das nächste net erst anfangen wenn das 1. fertig ist
Werd das ma testen, melde mich dann obs geht.

Und zu Google:
Wo das hier doch extra n Threat ist, damit DolphVS nimmer dauernt PMs bekommt wegen .bat-files, warum dann net reinschreiben, so dass es die andern auch lesen können?
 
Es ist sehrwohl möglich, mit einer Batch-Datei eine andere Batch-Datei zu starten, während die erste Batch-Datei weiterläuft.

Einfach mit dem start-Befehl ausführen:

Code:
start test.bat

ganz simpel

cu
 
Schon lange her *g*.
Inziwschen hät ich das auch gewusst, aber der Thread ist ja schon alt :p
Aber danke für den Vermerk ;)

Edit:
Nur zum unterscheiden

Code:
"test.bat"
Startet die Batch im gleichen Fenster (d.h. der programmablauf geht erst nach der ausgeführten "test.bat" weiter.

Code:
start "test.bat"
Startet die batch in einem neuen Fenster, das heißt die batch wird vortgesetzt, auch wenn "test.bat" noch nicht beendet ist.


[ Ich hoffe es ist verständlich :p ]
 
Zurück
Oben