Lernhilfe: Grundlagen verstehen & fertige Skripte nachschlagen
@echo off unterdrückt die Anzeige der Befehle selbst – man sieht nur die Ausgabe.
REM und :: sind Kommentare. echo. (mit Punkt) erzeugt eine Leerzeile.
cls leert den Bildschirm, pause wartet auf einen Tastendruck.
SET Name=Wert speicherst du etwas, mit %Name% liest du es wieder aus.
set /p fragt den Benutzer. Der Ausdruck %DATE:~6,4% schneidet ab Position 6
vier Zeichen aus dem Datum heraus – so entstehen eindeutige Dateinamen.
= dürfen keine Leerzeichen stehen, sonst gehören sie zum Wert.%ERRORLEVEL% ist 0, wenn der letzte Befehl fehlerfrei war. Vergleichsoperatoren:
EQU (gleich), NEQ (ungleich), GTR (grösser), LSS (kleiner).
IF EXIST prüft Dateien/Ordner, /i ignoriert Gross-/Kleinschreibung beim Textvergleich.
FOR ... IN (...) DO wiederholt etwas für jeden Eintrag. In einer Skriptdatei schreibt man
%%I, direkt in der Konsole nur %I. Eine :Sprungmarke zusammen mit
goto baut eine Schleife – ideal zum Überwachen.
STRG+C einplanen.> erstellt/überschreibt eine Datei, >> hängt hinten an, > nul
wirft unerwünschte Ausgaben weg, 2>&1 nimmt auch Fehlermeldungen mit auf, und die Pipe
| gibt das Ergebnis eines Befehls direkt an den nächsten weiter.
Get-Printer oder Add-Printer. Mit powershell -Command "..." ruft man
sie aus dem .cmd auf. FOR /F fängt das Ergebnis ein und speichert es in einer Variable.
'...' nutzen, damit sich die beiden Anführungszeichen-Arten nicht in die Quere kommen.IF %ERRORLEVEL%, ob alles geklappt hat.
set /p + if /i NOT ... exit /b) verhindert
versehentliches Löschen. Das Entfernen des Ports ist bewusst auskommentiert – nur bei Bedarf das REM löschen.
Format-List zeigt Details untereinander,
Format-Table als kompakte Tabelle. Mögliche Statuswerte: Normal, Error, Offline.
%TEMP%-Ordner abgelegt – falls etwas schiefgeht,
stellt die letzte (auskommentierte) Zeile alles wieder her. Niedrige DPI sparen Tinte, hohe sind für Fotos.
%DATE:~6,4%) erzeugt einen eindeutigen Dateinamen. chcp 1252 und
-Encoding ASCII sorgen für einheitliche Schrift in Notepad – sonst mischen sich
Zeichensätze und Umlaute werden unleserlich.
:SCHLEIFE/goto),
Wert einfangen (FOR /F), Bedingung (IF ... GTR) und ein
Popup über die Windows.Forms-MessageBox. timeout legt die Pause fest.
FOR (durch die IP-Liste laufen), ping und IF ERRORLEVEL 1
zusammen. Wichtig: Bei mehreren Vergleichsstufen gilt IF ERRORLEVEL 1 = „Rückgabewert 1 oder grösser".
Test-Connection prüfen.Sort-Object sortiert alphabetisch, Out-File -Append hängt an die Berichtsdatei an.
Standard_Raum101.cmd und Standard_Raum202.cmd. Ein Doppelklick wechselt dann den Standarddrucker.Import-Csv und legt Ports und Drucker neu an – kein
Zusatz-Feature nötig.
schtasks) als geplante Aufgabe beim Systemstart einrichten.rundll32 printui.dll,PrintUIEntry ist das eingebaute Windows-Werkzeug für Drucker.
/k druckt eine Testseite, /e öffnet die Eigenschaften. Perfekt, um nach dem Einrichten
(Skript 1) sofort zu testen.
choice /c 1234 lässt genau eine der Tasten 1–4 zu und liefert die Nummer als
ERRORLEVEL zurück. Lern-Kernpunkt: IF ERRORLEVEL n bedeutet „n oder grösser" –
deshalb muss man von oben nach unten (4→1) abfragen, sonst greift immer die erste Bedingung.
schtasks steuert den Windows-Aufgabenplaner per Befehl. /sc daily /st 08:00 = täglich um 8 Uhr,
/rl highest = mit Adminrechten, /f = ohne Rückfrage überschreiben. So laufen Skripte
automatisch – ganz ohne Klicken.
| Aufgabe | PowerShell-Cmdlet |
|---|---|
| Alle Drucker anzeigen | Get-Printer |
| Drucker hinzufügen | Add-Printer |
| Drucker entfernen | Remove-Printer |
| Port anlegen | Add-PrinterPort |
| Aufträge anzeigen | Get-PrintJob |
| Aufträge löschen | Remove-PrintJob |
| Treiber anzeigen | Get-PrinterDriver |
| Einstellungen ändern | Set-PrintConfiguration |
| Erreichbarkeit testen | Test-Connection |
net, ping, rundll32) sind uralt und immer
da – gut für Steuerung, Schleifen und Dateien. Die PowerShell-Cmdlets oben sind modern und mächtig.
Deshalb kombinieren die Skripte beides: Batch als Rahmen, PowerShell für die eigentliche Drucker-Arbeit.
Get-Printer – schon siehst du alle Drucker. Mit Get-Help Add-Printer -Examples gibt es Beispiele..cmd-Datei →
„Als Administrator ausführen". Fehlt das, erscheinen „Zugriff verweigert"-Meldungen.
| Symptom | Ursache / Lösung |
|---|---|
| „Drucker nicht gefunden" | Name muss exakt stimmen (Skript 3 nutzen, um den echten Namen zu sehen) |
| Umlaute (ä ö ü) unleserlich | chcp 1252 setzen und mit -Encoding ASCII speichern |
| Treiber-Fehler beim Anlegen | Treiber ist nicht installiert → zuerst installieren |
| PowerShell blockiert | Einmalig Set-ExecutionPolicy RemoteSigned (als Admin) |
echo vor den „gefährlichen" Befehl setzen –
dann wird der Befehl nur angezeigt, nicht ausgeführt:echo powershell -Command "Remove-Printer ..."echo entfernen. So kann nichts kaputtgehen.
pause, schliesst sich das Fenster sofort und man sieht die
Meldung nicht. Zum Fehlersuchen ein pause einbauen oder das Skript aus einer offenen Eingabeaufforderung starten.