Wichtige CMD-Befehle für Windows

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.
POPD kehrt zurück und löst die temporäre Laufwerkszuordnung. Erspart manuelles Netzlaufwerk-Mapping in Skripten, z.B. um Installationspakete auf einem Share auszuführen. Dann aber immer an das POPD am Ende denken, damit das gemappte Laufwerk wieder entfernt wird.

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.