Dieser Artikel beschreibt einige hilfreiche Kommandozeilen-Befehle und Befehle für Batchskripte in Windows.
Befehl (Name) |
Beispiel(e) |
Beschreibung |
CD (CHDIR) |
cd C:\Projects\PLM cd.. |
Wechselt in das angegebene Verzeichnis. Ermöglicht das Navigieren im Dateisystem per Eingabeaufforderung (z.B. zu Konfigurationsordnern einer PLM-Anwendung). Mit CD /D T:\TEMP kann man auch direkt von einem anderen Laufwerk in den Ordner wechseln, ohne vorher das Laufwerk zuwechseln. |
DIR |
dir /S *.log |
Listet den Inhalt eines Verzeichnisses auf (hier alle *.log-Dateien, auch in Unterordnern). Nützlich, um Dateien zu finden oder die Struktur von Projekt- und CAD-Datenverzeichnissen zu überblicken. |
MD (MKDIR) |
mkdir C:\Projects\NeuesProjekt |
Erstellt ein neues Verzeichnis (auch mehrere Ebenen bei Bedarf). Damit können z.B. Ordner für neue Projekte oder Datenablagen über Scripts automatisiert angelegt werden. |
RD (RMDIR) |
rmdir /S /Q C:\Projects\AltesProjekt |
Löscht ein Verzeichnis. Mit /S inklusive Unterverzeichnissen und mit /Q ohne Rückfrage – praktisch zum Aufräumen von temporären Verzeichnissen oder alten Projektständen per Skript. |
COPY |
copy C:\Temp\config.ini D:\Backup\ |
Kopiert eine oder mehrere Dateien an einen neuen Ort. Einfaches Mittel, um z.B. Konfigurationsdateien zu sichern oder Installationsdateien in ein anderes Verzeichnis zu übertragen. |
XCOPY |
xcopy C:\Daten D:\Backup /E /S /I |
Kopiert Dateien und Verzeichnisse rekursiv. Mit den Schaltern /E /S (auch leere Verzeichnisse) und /I (Ziel als Verzeichnis interpretieren) eignet sich dieser Befehl für detaillierte Backup-Skripte. |
MOVE |
move Bericht.csv \\server\archiv\ |
Verschiebt oder benennt Dateien und Ordner um. So können z.B. erzeugte Auswertungen oder Logfiles in Archivordner verschoben oder Dateien umbenannt werden (etwa bei automatisierter Ablage). Dabei können Dateien und Ordner überschrieben werden. |
REN (RENAME) |
ren setup.log setup_alt.log |
Benennt eine Datei oder einen Ordner um. Hilfreich, um z.B. Log- oder Konfigurationsdateien mit Versionsständen zu versehen (im Beispiel wird setup.log zu setup_alt.log umbenannt). Kann keine Dateien überschreiben! |
DEL (DELETE) |
del /S *.tmp |
Löscht eine oder mehrere Dateien (hier alle *.tmp-Dateien rekursiv). Mit Platzhaltern und /S zum rekursiven Löschen eignet sich der Befehl zum Bereinigen von temporären Dateien oder alten Exporten. |
ROBOCOPY |
robocopy C:\Daten \\Server\Backup /MIR |
Robuste Kopie: Kopiert Dateien/Verzeichnisse zuverlässig, auch große Datenmengen. Im Beispiel wird der Ordner C:\Daten nach \Server\Backup gespiegelt (/MIR). Robocopy ist für Backup-Zwecke, Deployment von CAD-Datenbibliotheken oder Synchronisation von Projektordnern ideal (inkl. Wiederaufnahme bei Netzunterbrechung). Mit dem Parameter /MT wird der Turbo aktiviert, dann verwendet ROBOCOPY das Multithreading |
PUSHD / POPD |
pushd \\Server\Share\Install popd |
Speichert das aktuelle Verzeichnis auf einem Stack und wechselt zum angegebenen Pfad. Akzeptiert auch UNC-Netzwerkpfade – bei PUSHD \\Server\Share wird automatisch ein freier Laufwerksbuchstabe zugewiesen und dorthin gewechselt learn.microsoft.com. |
NET USE |
net use Z: \\filesrv\projekte /persistent:yes |
Stellt eine Verbindung zu einem Netzlaufwerk her (hier Z: auf \filesrv\projekte) oder zeigt bestehende an. Damit können Freigaben für CAD-Daten, Setup-Dateien oder Team-Dokumente als Laufwerk gemappt werden. persistent:yes sorgt für Wiederverbinden nach Neustart. |
IPCONFIG |
ipconfig /all |
Zeigt die Netzwerkkonfiguration an (für alle Adapter, inkl. IP-Adressen, DNS-Servern, DHCP-Informationen). Damit lässt sich überprüfen, ob z.B. die richtige IP/Subnetz eingestellt ist, welcher DNS-Server und welches Gateway verwendet werden soll. |
PING |
ping Lizenzserver -t |
Sendet ICMP-Echo-Requests an einen Host (hier kontinuierlich mit -t). Dient zur Überprüfung der Erreichbarkeit eines Servers oder Geräts im Netzwerk. Ein häufiger Einsatz ist das Troubleshooting von Netzwerkproblemen, z.B. ob ein Lizenzserver oder ein PLM-Webserver antwortet (Latenz und Paketverlust sind ebenfalls ersichtlich). Wird in manchen Netzen allerdings blockiert und keine Antwort heißt dann nicht unbedingt, dass der Rechner nicht erreichbar ist. |
TRACERT |
tracert example.com |
Verfolgt den Weg der Netzwerkpakete zum Zielhost (Trace Route). Zeigt alle Zwischenstationen (Router) an. Hilfreich, um Netzwerkstrecken zu diagnostizieren – z.B. wenn ein PLM-System aus mehreren Standorten erreicht werden muss, kann man Engpässe oder fehlerhafte Routen erkennen. Wie bei Ping, das kann vom Netzwerk blockiert werden. |
NSLOOKUP |
nslookup plm-server.company.com |
Führt DNS-Abfragen durch. Im Beispiel wird die IP-Adresse für den Hostnamen plm-server.company.com ermittelt. Damit lässt sich prüfen, ob DNS-Namen korrekt aufgelöst werden – wichtig, wenn Anwendungen Server über Namen ansprechen (z.B. Lizenzserver, Datenbankserver). Als Ergebnis wird der antwortende DNS und die Namen und IPs des Zielrechners angezeigt. Mit nslookup gmx.de 1.1.1.1 kann man eine Anfrage an den DNS 1.1.1.1 senden. Damit können gezielt bestimmte DNS getestet werden. |
NETSTAT |
netstat -ano | findstr :8080 |
Listet offene TCP/UDP-Verbindungen und -Ports auf. Mit Parametern können aktive Verbindungen, offen Ports und zugehörige Prozess-IDs angezeigt werden. Im Beispiel wird nach Port 8080 gefiltert – so kann man überprüfen, ob z.B. ein Applikationsdienst auf dem Port 8080 lauscht oder ob Ports von anderen Prozessen belegt sind (wichtig bei Serverdiensten und Lizenzservern). |
SYSTEMINFO |
systeminfo | findstr /B /C:"OS Version" |
Zeigt detailreiche Systeminformationen an: Windows-Version, Service Packs, Hardware, Speicherauslastung, installierte Hotfixes etc. (Im Beispiel filtert findstr nur die Zeile mit der OS-Version heraus.) Damit kann man z.B. prüfen, ob ein Server die Mindestanforderungen für eine PLM-Software erfüllt oder welche Updates installiert sind (relevant für Kompatibilitätsfragen). |
TASKLIST |
tasklist /FI "IMAGENAME eq nx.exe" |
Listet alle laufenden Prozesse mit Prozess-ID (PID) und Speicherverbrauch auf. Mit Filtern (/FI) kann man nach einem bestimmten Prozess suchen (im Beispiel nach nx.exe, z.B. Siemens NX CAD). So sieht man, ob eine Anwendung oder ein Service läuft – nützlich etwa, um sicherzustellen, dass ein Batch-Job gestartet ist oder ein CAD-Worker-Prozess aktiv ist. |
TASKKILL |
taskkill /F /IM acrobat.exe |
Beendet einen laufenden Prozess per Name oder PID (/IM = Image-Name). Mit /F wird das Beenden erzwungen. Praktisch, um abgestürzte oder hängen gebliebene Prozesse zu terminieren (z.B. einen CAD-Viewer oder einen Batch-Prozess, der nicht mehr reagiert), ohne den ganzen Rechner neu zu starten. |
SC (Service Control) |
sc query "MyService" sc stop "MyService" sc delete "MyService" |
Verwaltet Windows-Dienste aus der Kommandozeile. Mit sc query <Dienst> lässt sich der Status abfragen, sc start/stop <Dienst> startet oder stoppt einen Dienst. Das ist hilfreich, um z.B. einen PLM-Server-Dienst oder einen Lizenzserver-Dienst per Skript neu zu starten oder deren Status zu prüfen. (Erweiterte Optionen erlauben auch Konfiguration von Diensten). |
SCHTASKS |
schtasks /Create /TN "BackupJob" /TR "C:\Scripts\backup.bat" /SC DAILY /ST 23:00 |
Erstellt eine geplante Aufgabe (Task) im Windows Task Scheduler. Im Beispiel wird ein täglicher Backup-Job um 23:00 Uhr eingerichtet, der ein Skript ausführt. Mit SCHTASKS können wiederkehrende Aufgaben automatisiert werden – etwa nächtliche Datensicherungen, regelmäßige Neustarts eines Dienstes oder das Ausführen von Wartungsskripten für PLM/CAX-Systeme. |
SHUTDOWN |
shutdown /r /t 0 |
Fährt den Rechner herunter oder startet ihn neu. Im Beispiel wird ein sofortiger Neustart ausgelöst (/r = reboot, /t 0 = ohne Verzögerung). Nützlich, um Server nach Installationen oder Updates remote neu zu starten (z.B. im Anschluss an ein Software-Update) oder einen zeitgesteuerten Shutdown durchzuführen (/s für Shutdown, mit /t Sekunden Vorlauf). |
GPUPDATE |
gpupdate /force |
Aktualisiert Gruppenrichtlinien sofort. Mit /force werden alle Richtlinien (Computer und Benutzer) erzwungen neu angewendet. Dies ist hilfreich, wenn kürzlich Änderungen an den Policies vorgenommen wurden – z.B. neue Umgebungsvariablen, Skripte beim Anmelden oder Sicherheitseinstellungen für die PLM-Software – und man diese ohne Neustart unmittelbar ziehen lassen will. |
GPRESULT |
gpresult /R |
Zeigt den Resultant Set of Policy (effektive Gruppenrichtlinien) für Rechner und Benutzer an. Damit kann man nachvollziehen, welche GPOs angewendet sind. Für die Fehleranalyse im Unternehmensumfeld ist das nützlich – z.B. um zu prüfen, ob eine bestimmte Richtlinie (etwa eine Login-Skript-Zuweisung für CAD-Umgebungsvariablen oder Firewall-Einstellungen) auf dem Rechner des Anwenders ankommt. |
SET |
set PATH set CAD_LICENSE=27000@Server |
Zeigt alle Umgebungsvariablen an oder filtert nach Präfix (hier PATH). Kann auch zum temporären Setzen von Variablen genutzt werden (SET VAR=... für die aktuelle Sitzung). Im Beispiel wird eine Variable CAD_LICENSE gesetzt (typisch Format Port@Server für einen Lizenzserver). Als Applikationsingenieur ist SET hilfreich, um z.B. Pfade (PATH) oder Lizenz-Umgebungsvariablen für CAD/PLM-Programme schnell einzusehen oder in Skripten zu ändern. |
SETX |
setx CAD_HOME "C:\CAD\Tools" /M |
Legt eine Umgebungsvariable dauerhaft an (im Registry). Im Beispiel wird CAD_HOME als Systemvariable (/M für Machine) gesetzt, die z.B. auf ein CAD-Tools-Verzeichnis zeigt. SETX ist nützlich, um in Installations- oder Konfigurationsskripten Werte persistent zu hinterlegen (wirksam für neue Sessions) – etwa Lizenzserver-Infos oder Konfigurationspfade, die von Anwendungen benötigt werden. |
REG (REG QUERY/ADD) |
reg query "HKLM\Software\MyApp\Settings" |
Liest oder bearbeitet Einträge in der Windows-Registry. Im Beispiel wird ein Registry-Schlüssel ausgelesen. REG erlaubt es z.B. in Deploymentskripten, Konfigurationen direkt in der Registry zu prüfen oder zu ändern – etwa einen Lizenzschlüssel einzutragen (reg add), einen Pfad anzupassen oder festzustellen, ob eine bestimmte Softwareeinstellung gesetzt ist (wichtig bei Softwareinstallationen und Fehlersuche). |
MSIEXEC |
msiexec /i "Setup.msi" /qn /L*v install.log |
Startet die Windows-Installer-Engine für MSI-Pakete. /i installiert ein MSI (mit /x deinstalliert man), hier im Silent-Modus ohne Benutzeroberfläche (/qn) und mit ausführlichem Log (/L*v). Damit können Installationen von Software automatisiert und unbeaufsichtigt ablaufen – z.B. das Ausrollen eines CAD-Clients oder PLM-Tools auf vielen Rechnern mit einem Skript, inkl. Logging der Installationsvorgänge für die Nachverfolgung. |
DISM |
dism /Online /Enable-Feature /FeatureName:NetFx3 /All |
Deployment Image Servicing and Management: Mächtiges Tool zur Installation von Windows-Features, -Paketen und für Systemabbild-Wartung. Im Beispiel wird das .NET-Framework 3.5 Feature auf dem laufenden System aktiviert – häufig Voraussetzung für ältere CAD/PLM-Anwendungen. Mit DISM kann ein Applikationsingenieur benötigte Windows-Komponenten per Script hinzufügen (statt manuell über GUI), Systemkomponenten reparieren oder Treiber/Updates in ein Image integrieren (bei Server-Wartung). |
FINDSTR |
findstr /I "ERROR" C:\Logs\App.log |
Sucht nach Zeichenketten in Dateien (hier ohne Groß/Kleinschreibung nach "ERROR" in App.log). FINDSTR erleichtert die Log-Analyse erheblich: Man kann gezielt nach Fehlermeldungen, Auftragsnummern oder anderen Schlüsselbegriffen in Protokolldateien, Konfigurationsdateien oder Konsolenausgaben suchen. So lässt sich z.B. in einem umfangreichen PLM-System-Log schnell die relevante Fehlermeldung finden, ohne die gesamte Datei manuell zu durchsuchen. |
HOSTNAME |
hostname |
Gibt den Namen des Rechners aus. Hilfreich, um in Netzwerkkonfigurationen oder bei der Identifikation von Maschinen in einer PLM-Umgebung den Systemnamen anzuzeigen. Die Variable COMPUTERNAME gibt beinhaltet nur die ersten 15 Stellen des Hostnamens. Das kann bei Rechnernamen mit mehr als 15 Zeichen in Skripten dann zu Problemen führen. |
WHOAMI |
whoami |
Who am I (Wer bin ich) Zeigt den aktuell angemeldeten Benutzer an. Nützlich bei der Überprüfung von Zugriffsrechten oder zur Fehlerdiagnose im Benutzerkontext. Als Varaible gibt es dafür USERNAME |
CLS |
cls |
CLear Screen Löscht den Konsolenbildschirm und sorgt so für eine übersichtliche Arbeitsumgebung. Ideal, wenn der Bildschirm mit alten Ausgaben überladen ist. |
ECHO |
echo Start des Skripts |
Gibt den eingegebenen Text in der Konsole aus. Oft genutzt, um den Fortschritt in Batch-Skripten anzuzeigen oder Umgebungsvariablen zu überprüfen. Mit ECHO %USERNAME% wird der Inhalt der Variablen USERNAME angezeigt. Mit ECHO %USERNAME% > C:\Info.txt wird der Inhalt der Variablen USERNAME in die Datei C:\Info.txt geschrieben. Alles in der Datei wird überschrieben. Mit ECHO %USERNAME% >> C:\Info.txt wird der Inhalt der Variablen USERNAME an die Datei C:\Info.txt angehängt. Der Inhalt der Datei bleibt erhalten und die Daten werden am Ende angefügt. |
TYPE |
type C:\Logs\error.log |
Zeigt den Inhalt einer Textdatei an. Sehr nützlich, um Logdateien oder Konfigurationsdateien direkt in der Eingabeaufforderung zu inspizieren. |
MORE |
more C:\Logs\error.log |
Ähnlich wie TYPE, hält aber nach jeder vollen Bildschirmseite an. Mit ENTER kann zeilenweise, mit LEERTASTE Seitenweise weitergescrollt werden. |
FIND |
find "Fehler" C:\Logs\error.log |
Durchsucht Dateien nach einem bestimmten Textmuster. Damit lassen sich Fehlermeldungen oder spezifische Einträge in Log-Dateien schnell finden. |
ATTRIB |
attrib -R +H C:\Projekte\ProjektDatei.txt |
Zeigt Dateiattribute an oder ändert sie. Im Beispiel wird das Attribut "read-only" entfernt und "hidden" hinzugefügt. Nützlich, um Dateischutz oder Sichtbarkeit zu steuern. |
FOR |
for %F in (*.txt) do echo %F |
Führt eine Schleife über eine Liste von Dateien (hier alle *.txt-Dateien) aus. Erlaubt die automatische Verarbeitung einer Sammlung von Dateien in Batch-Skripten. |
SETLOCAL |
setlocal ... endlocal |
Startet bzw. beendet einen lokalen Variablenbereich in einem Batch-Skript. Hilft, Umgebungsvariablen isoliert zu verwalten und Konflikte zu vermeiden. |
PAUSE |
pause |
Stoppt die Ausführung eines Skripts und wartet auf einen Tastendruck. Praktisch, um nach kritischen Schritten eine manuelle Bestätigung einzuholen. |
CALL |
call C:\Scripts\zusatzskript.bat |
Ruft ein anderes Batch-Skript innerhalb eines Skripts auf und kehrt danach zurück. Nützlich, um modular aufgebaute Installations- oder Konfigurationsskripte zu strukturieren. |
EXIT |
exit |
Beendet die CMD-Sitzung oder ein Batch-Skript. Kann in Skripten zum sauberen Abschließen verwendet werden, um Systemressourcen freizugeben. |
VER |
ver |
Zeigt die aktuelle Windows-Version an. Hilfreich, um direkt zu überprüfen, welche Systemversion (z.B. Windows 11 oder Server 2022) verwendet wird. |
DATE |
date /T |
Zeigt das aktuelle Datum an oder ändert es (ohne /T erfolgt eine interaktive Eingabe zur Änderung des Datums). Erleichtert die Protokollierung oder zeitliche Zuordnung in Scripts. |
TIME |
time /T |
Zeigt die aktuelle Uhrzeit an oder ermöglicht deren Änderung (wie bei date zur Änderung dder Uhrzeit). Nützlich zur Zeitstempel-Erfassung in automatisierten Prozessen. |
TREE |
tree C:\Projekte /F |
Zeigt die Verzeichnisstruktur in einer Baumansicht an (mit /F für Files werden Dateien mit aufgelistet). Bietet einen schnellen Überblick über komplexe Projektverzeichnisse. |
DRIVERQUERY |
driverquery /V /FO TABLE |
Listet alle installierten Gerätetreiber auf. Mit /V (verbose) und /FO TABLE wird eine übersichtliche Tabelle erzeugt. Sehr nützlich bei der Systemdiagnose oder Fehlersuche auf Servern. |
ASSOC |
assoc .cad |
Zeigt die Zuordnung von Dateiendungen zu Dateitypen an. Damit kann geprüft werden, welche Anwendung standardmäßig mit einer bestimmten CAD-Dateiendung verknüpft ist. |
START |
start notepad.exe start http://www.example.com |
Öffnet ein Programm, Dokument oder eine URL in einem neuen Fenster. Nützlich, um Anwendungen in separaten Fenstern zu starten oder Web-Ressourcen direkt aufzurufen. |
TITLE |
title MeinCMD-Fenster |
Legt den Fenstertitel der Eingabeaufforderung fest. Dies hilft dabei, mehrere CMD-Sitzungen zu differenzieren – beispielsweise eine Sitzung für PLM-Diagnose und eine andere für Batch-Jobs. |
COLOR |
color 0A |
Ändert die Text- und Hintergrundfarbe des Konsolenfensters. Praktisch, um visuelle Hervorhebungen zu setzen oder verschiedene Arbeitsumgebungen zu unterscheiden. |
HELP |
help start help [Befehl] |
Zeigt die Hilfeinformationen zu einem bestimmten Befehl an. Dies erleichtert es, schnell die Syntax und Optionen eines Befehls nachzuschlagen, ohne externe Dokumentationen zu Rate zu ziehen. |