Shell Befehle und Variablen
Batch Befehle
Command-line reference A-Z Win7, Vista
Command-line reference A-Z WinXP
Taste | Funktion |
---|---|
F7 | Liste der eingegebenen Befehle |
F8 | letzten Befehle durchblättern, wie Taste rauf, runter |
- jede Eingabeaufforderung mit AdminRechten in Blau-Gelb
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor] "AutoRun"="@whoami /groups | @find /i \"S-1-16-12288\" >nul && @color 9E"
Befehl | Bedeutung |
---|---|
whoami | Name des angemeldeten Benutzers |
whoami /groups | Gruppen in denen der Nutzer Mitglied ist |
cd /d D:\Daten | in das Verzeichnis Daten auf einem anderen Laufwerk wechseln |
set DIRCMD=/ogn /p | Variable setzen, bei der Ausgabe von DIR Verzeichnisse zuerst, alphabetisch sortiert,/p Seitenweise Ausgabe |
sc config <Dienst> start= auto | Dienst Start Automatisch |
sc config <Dienst> start= delayed-auto | Dienst Start Automatisch verzögert |
sc config <Dienst> start= demand | Dienst Start Manuell |
sc config <Dienst> start= disabled | Dienst Start Deaktiviert |
call "path\file.bat" -Parameter | innerhalb einer Batch eine anderes Batchfile ausführen |
start "path\file.bat" -Parameter | innerhalt einer Batch ein Programm ausführen |
Benutzerverwaltung | |
net accounts | Kennworteinstellungen anzeigen |
net user <Username> <Passwort> /add | Benutzer erstellen |
net group <Gruppenname> /add | Gruppe erstellen |
TIMEOUT /T 10 | im Batch File Zeit warten, z.B. 10 Sekunden |
CHOICE /T 10 /D J /N >NUL | im Batch File Zeit warten, z.B. 10 Sekunden |
- wenn der Benutzer in der Gruppe "Administrator" (S-1-16-12288) ist wird die Farbe 47 (Rot) gesetzt
whoami /groups | find "S-1-16-12288" > nul if errorlevel 1 color 47
Um den Inhalt aller *.CAB Dateien einer Windows Install Version zu sehen bracht man eine Schleife, die jede Datei hintereinander abarbeitet. Das macht der Befehl aus guten alten DOS Zeit, wenn man den Befehl in einer Batch abarbeitet muß man %a durch %%a ersetzen
FOR %a IN (*.cab) DO EXTRACT %a >>win.txt
einen Befehl unter Windows an bestimmten Wochentagen ausführen.
at 22:00 /every:Mo,Di,Mi,Do,Fr c:\winnt\system32\cmd.exe
Datum und Uhrzeit in einer Variable speichen und ausgeben.
FOR /F %%a in ('date/T') do set datum=%%a FOR /F %%a in ('time/T') do set zeit=%%a echo %datum% %zeit%
es gibt auch schon vordefinierte Variablen für Datum und Zeit.
# echo %date% %time% 27.04.2008 20:02:40,90
echo %DATE:~-2%-%DATE:~-7,2%-%DATE:~-10,2% 12-09-30
echo %date:~6,4%.%date:~3,2%.%date:~0,2% 2012.09.30
%date:~6,4%.%date:~3,2%.%date:~0,2% %time:~0,2%.%time:~3,2%.%time:~6,2% 2012.09.30 19.01.00
- für Scripte nur Datum
for /f "delims=. tokens=1-3" %%a in ('echo %date%') do set date=%%c-%%b-%%a echo %date% 2012-09-30
- für Scripte nur Zeit
for /f "tokens=1-4 delims=.:, " %%a in ('echo %time%') do set time=%%a:%%b echo %time% 19:01
wenn der Rechner NOTEBOOK heist, wird Befehl-1 übersprungen
if %COMPUTERNAME% == NOTEBOOK goto weiter Befehl-1 :weiter befehl-2 goto end :end
alle Truecrypt Dateien (.tc) eines Verzeichnisses sichern
@echo off for /f "delims=. tokens=1-3" %%a in ('echo %date%') do set date=%%c-%%b-%%a echo Aktuelles Datum: %date% echo. if exist F:\Backup goto LW_F if exist G:\Backup goto LW_G GOTO WEITER :LW_F D: CD "\Eigene Dateien" FOR %%a in (*.tc) do ( echo d | xcopy %%a F:\Backup\%date%-%%a /f /y >nul echo Datei %%a kopiert echo. ) GOTO END :LW_G D: CD "\Eigene Dateien" FOR %%a in (*.tc) do ( echo d | xcopy %%a G:\Backup\%date%-%%a /f /y >nul echo Datei %%a kopiert echo. ) GOTO END :WEITER echo Kein Backup-Laufwerk gefunden :END echo. echo. echo beenden mit beliebige Taste pause > nul exit
- prüfen, ob der angegebene Dienst läuft.
@echo off net start | find /I "<Name des Dienstes>" >NUL IF NOT ERRORLEVEL 1 GOTO STOP GOTO START :STOP echo "Dienst läuft" GOTO END :START echo "Dienst läuft nicht" :END
- wenn Dienst nicht läuft, wird er gestartet.
for /F "tokens=3 delims=: " %%H in ('sc query "<Name des Dienstes>" ^| findstr " STATE"') do ( if /I "%%H" NEQ "RUNNING" ( net start "<Name des Dienstes>" ) )
@echo Off set ServiceName=<Name des Dienstes> sc queryex "%ServiceName%"|Find "STATE"|Find /v "RUNNING">Nul&&( echo %ServiceName% laeuft nicht echo starte %ServiceName% net start "%ServiceName%">nul||( echo %ServiceName% fehlerhaft gestartet exit /b 1 ) echo %ServiceName% gestartet exit /b 0 )||( echo %ServiceName% laeuft exit /b 0 )
- Prüft ob ein Parameter angegeben wurde
@echo off if "%1"=="" goto help :weiter ... :help echo Befehl [Parameter] goto end :end