Windows-Tipps
16.03.2022, 09:04 Uhr
Praxistipps für die Windows-Konsole
Weil unter Windows 10 und 11 das «Konsolenfenster» wieder Aufwind erhält, ist es Zeit fürs Auffrischen der Konsolenkenntnisse. Im Folgenden verraten wir die wichtigsten Befehle und Tipps rund um die Kommandozeileneingabe.
Mit Windows 11 zieht eine neue Terminalanwendung ein, in der Sie die klassische Eingabeaufforderung (cmd.exe, «DOS-Fenster»), die neue PowerShell und weitere Shells (also Kommandozeileneingabe-Tools) nebeneinander benutzen können. Das ist für mich die ideale Gelegenheit, die alten «DOS-Fenster»-Kenntnisse hervorzukramen und allenfalls zu aktualisieren.
Wozu die Konsole?
Die Konsolenfenster aller Art erlauben es, auf Befehle und Objekte zuzugreifen, die entweder in der klickbaren Bedienoberfläche gar nicht zugänglich sind oder nur über verschachtelte Menüs erreichbar wären. Vieles geht für Geübte in einem Konsolenfenster wesentlich schneller. Die Konsolenbefehle lassen sich ausserdem scripten, sprich: alle zusammen in eine Batch-Datei (Stapelverarbeitung) stecken, die beim Ausführen alle Befehle nacheinander abspult.
Besonders wenn man bestimmte Abläufe auf mehreren Systemen oder wiederkehrend auf dem eigenen Rechner durchführen will, ist dies eine erhebliche Beschleunigung der Arbeitsschritte. Konsolenbefehle lassen sich mit Filtern zudem auf bestimmte Objekte anwenden. Ideal, wenn Sie beispielsweise in einem Rutsch alle DOCX-Dateien von A nach B bzw. von C:\ nach D:\ kopieren wollen.
Nicht zu unterschätzen sind Konsolenbefehle in Batch-Dateien, die Sie über die Windows-Zeitplanung ausführen – zum Beispiel ein Kopieren aller Dateien in einem Ordner auf Ihr Backup-Laufwerk.
Konsolen und Befehle
Grundsätzlich kennt jedes Betriebssystem so etwas wie eine Eingabeaufforderung, manchmal auch Shell genannt. Die Eingabeaufforderung (Cmd, «DOS-Fenster») und PowerShell sind standardmässig unter Windows dabei. Es gibt in der Konsole verschiedenste Hilfe-Befehle oder spezielle Schalter, die man einem Befehl mitgeben kann, damit er die verfügbaren Unterbefehle auflistet. Jene, die man häufiger braucht, lernt man mit der Zeit automatisch auswendig.
PowerShell
Die PowerShell ist mit Windows 7 eingezogen und wird früher oder später die klassische Eingabeaufforderung (kurz Cmd von Command) ablösen. Die PowerShell versteht die meisten Cmd-Befehle ebenfalls; da und dort passen Sie die Syntax etwas an. Die PowerShell ist aber weitaus mächtiger als Cmd, hat erweiterte Filterfunktionen und erlaubt sehr umfangreiche Scripts. Sie erreicht einen ähnlich mächtigen Funktionsumfang wie eine Linux-Shell. Das heisst: Sie kann quasi alles!
Was bedeutet «Syntax»?
Als Syntax bezeichnet man den Aufbau eines in der Konsole eingetippten Befehls. Das betrifft zum Beispiel die Reihenfolge und Schreibweise der Befehlselemente (Befehl, Zielobjekt, Schalter). Dies auch in Bezug darauf, ob ein Befehl gross oder klein geschrieben wird, ob die Schalter mit Schräg- oder Bindestrich korrekt sind.
Manches ist halbwegs fehlertolerant: Auch wenn Sie beispielsweise in der PowerShell-Hilfe die Befehle stets mit gemischter Gross-/Kleinschreibung sehen (Get-Help), funktionieren sie meist auch in Kleinschreibung (get-help). Das muss nicht für alle Konsolen, Befehle und Schalter gelten, da Computer eigentlich zwischen Gross- und Kleinbuchstaben unterscheiden.
PowerShell/Cmd starten
Klicken Sie auf Start und tippen Sie cmd ein, falls Sie die klassische Eingabeaufforderung wünschen, oder powershell, wenn Sie die PowerShell öffnen wollen. Klicken Sie unter dem grossen Programmsymbol auf Öffnen, erscheint das Konsolenfenster, Bild 1.
Für einige Handgriffe ist es erforderlich, die PowerShell oder Cmd mit Administratorrechten zu starten. Das ist immer dann notwendig, wenn es sich um Schreib- oder Löschzugriffe in System- oder Programmordnern dreht. Arbeiten Sie nur mit Admin-Rechten, wenn Sie diese für Ihr Vorhaben wirklich brauchen. Wollen Sie dies, klicken Sie unterhalb des Programmsymbols auf Als Administrator ausführen. Ist Ihr Benutzerkonto mit Administratorrechten ausgestattet, bestätigen Sie die Rückfrage der Benutzerkontensteuerung.
Andernfalls fragt das Windows-System Sie nach dem Login eines gültigen Administratorkontos. Ob das aktuelle PowerShell- oder Cmd-Fenster mit diesen Rechten ausgestattet ist, erkennen Sie am Titelbalken. Ist darin Administrator vorangestellt, läuft die Konsole mit Admin-Rechten.
Wo bin ich?
Ob Sie sich in einem PowerShell- oder Cmd-Fenster befinden, erkennen Sie zunächst an der Farbe. Standardmässig zeigt das Cmd-Fenster einen schwarzen Hintergrund, die PowerShell einen blauen. Ausserdem zeigt der «Prompt» (dort, wo Sie Ihre Befehle eingeben) in der PowerShell ein vorangestelltes «PS», Bild 2. Der Prompt ist auch der Ort, der Ihnen anzeigt, in welchem Ordner Sie sich gerade befinden. Befehle, die Sie eingeben, gelten immer nur für den aktuellen Ordner.
Falls Befehle für Objekte in einem anderen Ordner gedacht sind, haben Sie zwei Möglichkeiten: Entweder geben Sie im Befehl den Zielordner und die dortigen Zieldateien an oder Sie wechseln zuerst in diesen Ordner. Sowohl für die PowerShell als auch für Cmd gilt zudem: Wenn Sie diese normal starten, landen Sie immer zuerst in Ihrem Benutzerordner.
Auf unserem Beispielsystem ist dies C:\Users\gabri\. Starten Sie die Cmd oder PowerShell mit Administratorrechten, werden Sie immer im Verzeichnis C:\Windows\System32\ landen.
PowerShell
Die PowerShell ist viel mächtiger, daher auch viel komplizierter als die Cmd-Eingabeaufforderung, aber auch recht gut dokumentiert. Wir können hier unmöglich alle Befehle zeigen, aber Sie erfahren im Folgenden die wichtigsten zum Einstieg, wo Sie die komplette Befehlsliste finden und wie Sie für jeden die Detailinfos für dessen Anwendung erfahren. Öffnen Sie nun als Erstes eine normale PowerShell.
Wenn Sie den Befehl get-help eintippen, erscheinen grundsätzliche Informationen zur PowerShell. Öffnen Sie nun nebenher eine PowerShell mit Administratorrechten. Tippen Sie update-help ein. Damit aktualisieren Sie die lokale PowerShell-Hilfe, damit Windows nicht für jeden Hilfebefehl ins Netz muss, den Sie in der PowerShell anzeigen.
Beim Aktualisieren der Hilfetexte kann es zu vereinzelten Fehlermeldungen kommen, die aber nicht weiter schlimm sind, Bild 3. Die Texte für die betroffenen Befehle stehen wohl einfach noch nicht bereit. Mit etwas Glück sind es nur Hilfetexte für Befehle, die Sie nicht brauchen.
Schliessen Sie die Admin-Variante der PowerShell wieder, indem Sie entweder exit eintippen oder oben rechts aufs X klicken.
Komplette Befehlsliste
Rufen Sie in einem gewöhnlichen PowerShell-Fenster mit get-command eine Liste der verfügbaren Befehle ab. Die Liste ist riesig. Scrollen Sie durch, sehen Sie, dass es hier Aliases, Cmdlets und Functions gibt. Die Cmdlets (ausgesprochen «Commandlets») und Functions sind Befehle, die Sie in der PowerShell eingeben können. Die Aliases sind alternative Schreibweisen für manche Befehle, die teils aus Gründen der Rückwärtskompatibilität so drinstehen. Ein Beispiel hierfür ist mit get-help Remove-AppPackage zu sehen, was Ihnen die Hilfe zu Remove-AppxPackage (man beachte das «x») anzeigt. Die meisten Befehle bestehen aus einem Verb, einem Bindestrich und mindestens einem Substantiv. Wer Englisch kann, macht sich dies zunutze.
Befehle als Textdatei
Möchten Sie die Befehle in eine Textdatei ausgeben, die Sie nebenher öffnen und durchsuchen können? Das Umleiten einer Befehlsausgabe in eine Textdatei mittels > war schon in der Eingabeaufforderung möglich und klappt auch in der PowerShell.
Tippen Sie get-command ein, gefolgt von einem Leerzeichen, dem Umleitungszeichen > und dem Pfad für die zu erstellende Textdatei, zum Beispiel so: get-command > C:\users\IhrName\Desktop\befehle.txt
Damit landet die Befehlsausgabe in einer Textdatei namens befehle.txt auf dem Desktop. Die lässt sich per Doppelklick in Notepad öffnen, Bild 4.
Hilfe anzeigen
Dies ist der wichtigste Tipp überhaupt. Wenn Sie in der Liste einen Befehl entdecken, den Sie vom Namen her gerade brauchen könnten: Rufen Sie mit get-help Befehlsname immer zuerst die Hilfe ab, zum Beispiel: get-help remove-item.
Damit erhalten Sie die Infos, mit welcher Syntax und welchen zusätzlichen Schaltern Sie den Befehl ausführen können, Bild 5. Sie sehen hier die Hilfe zum Befehl remove-item (das ist die PowerShell-Variante des alten DOS-Befehls delete).
Bei Übersicht steht, was der Befehl grundsätzlich macht. Unter Syntax sind in eckigen Klammern die möglichen Schalter aufgelistet, mit denen Sie beispielsweise bestimmen könnten, welches Objekt auf welche Weise gelöscht werden soll. Die [] müssen Sie bei der Nutzung des Befehls nicht mit eintippen, diese dienen hier nur der optischen Abgrenzung zum nächsten beschriebenen Schalter. Interessant ist meist auch Verwandte Links. Hier finden Sie eine Webadresse, die zum Onlineartikel des jeweiligen Befehls führt. Das ist auch eine Alternative, falls der folgende Tipp bei einem Befehl nicht funktioniert.
Sollte die lokale Hilfe nicht die erhoffte Erleuchtung bringen, versuchen Sie, die Onlineversion abzurufen, indem Sie dem get-help-Befehl am Schluss noch ein -online anhängen. Möchten Sie zum Beispiel herausfinden, wie resolve-dnsname zu benutzen ist, tippen Sie dies ein: get-help resolve-dnsname -online. Damit öffnet sich ein Browserfenster mit der entsprechenden Webseite von Microsoft. Sie zeigt (leider meist nur in Englisch) die möglichen Schalter an sowie nützliche Beispiele zum Einsatz des Befehls, Bild 6.
Vieles ist aber recht intuitiv. Die Autorin hat noch nie eine Datei via PowerShell-Befehl umbenannt, hat aber in der mit get-command abrufbaren Liste den Befehl Rename-Item entdeckt und ihn ausprobiert: Rename-Item .\Desktop\PSHilfe.txt PSHilfeAlt.txt benennt die Datei PSHilfe.txt im Unterordner «Desktop» in PSHilfeAlt.txt um. Lesen Sie sich also ein wenig ein und probieren Sie die Befehle aus. Das hilft am schnellsten weiter.
Weiteres zu PowerShell
Auch wenn wir gelegentlich Tipps zeigen, in denen die PowerShell für die Lösung eines bestimmten Problems zum Einsatz kommt, ist ein PCtipp-Artikel für eine umfangreiche PowerShell-Schulung derzeit die falsche Plattform. Der Microsoft-Kenner Mike F. Robbins hat ein kleines Buch für PowerShell-Neulinge geschrieben und es der Microsoft-Community unter go.pctipp.ch/ps101 zur kostenlosen Nutzung zur Verfügung gestellt. Es ist unter dem angegebenen Link in Deutsch auf der Microsoft-Webseite zu finden, Bild 7.
Häufige Befehle
Hier trotzdem ein paar Befehle, die Sie kennen sollten. Sie stammen primär aus der herkömmlichen Eingabeaufforderung, funktionieren aber oft auch in der PowerShell. Das liegt daran, dass in der PowerShell Aliase mitgeliefert wurden, um die alten Befehle an die neuen Funktionen weiterzuleiten. Letzteres stellen Sie fest, wenn Sie zum Beispiel in der PowerShell get-help copy eingeben. Das zeigt nicht die Hilfe zum Cmd-Befehl copy an, sondern zum PowerShell-Befehl Copy-Item.
Auflisten
Im Konsolenfenster sehen Sie die umliegenden Dateien und die Ordnerstruktur nicht dauernd vor sich. In welchem Ordner Sie sich aktuell befinden, zeigt Ihnen immer der Prompt an, also die Zeichenfolge zwischen dem PS und dem >-Zeichen. Mit dem Befehl dir (für «Directory») listen Sie den Inhalt des aktuellen Ordners auf, Bild 8. Was keine Dateiendung und besonders keine Dateigrössenangabe (Spalte Length) hat, ist ein Ordner. Hier: MouseWithoutBorders. Zudem liegen hier noch eine .txt- und drei Word-Dateien.
Nur bestimmte Files auflisten
Möchten Sie nicht alle Dateien und Ordner auflisten, sondern nur jene mit einer bestimmten Endung? Nutzen Sie das Sternchen (*) als Joker-Zeichen, was bedeutet: «Alle Zeichen und Objekte in beliebiger Anzahl». Der Befehl dir *.docx würde in diesem Ordner ausschliesslich die Word-Dateien auflisten. Dir Hanna* würde alle Dateien anzeigen, die mit «Hanna» anfangen und beliebige weitere Zeichen im Namen tragen.
Gefährliches Sternchen
Das Auflisten von Dateien mit dem Sternchen ist noch ungefährlich. Aber aufgepasst, das Sternchen kann auch verheerend sein, etwa wenn Sie es mit einem Löschbefehl verbinden. Wenn Sie in einem Ordner etwa del * oder Remove-Item * eingeben, löscht dies den gesamten Inhalt dieses Ordners – und zwar ohne Umweg via Papierkorb! Eine Rückfrage gibts nur fürs Löschen von Ordnern. Wenn Sie nicht genau wissen, was Sie tun, schicken Sie damit vielleicht mehr Daten ins Nirwana als gewünscht.
Zum Unterordner wechseln
Haben Sie mit dir einen Unterordner entdeckt, in den Sie wechseln wollen? Tippen Sie cd (für «Change Directory») ein, gefolgt vom Ordnernamen, zum Beispiel cd desktop. Nach dem Drücken der Enter-Taste sind Sie im entsprechenden Ordner.
Zum übergeordneten Ordner
Befinden Sie sich im Ordner Desktop und wollen in das übergeordnete Verzeichnis wechseln? Tippen Sie cd .. ein (also mit den zwei Punkten).
Löschen
Zum Löschen einer Datei oder eines Ordners benutzen Sie del. In der PowerShell können Sie auch zu Remove-Item greifen, gefolgt vom zu löschenden Objektnamen, zum Beispiel del befehle.txt, oder Sie tippen Remove-Item befehle.txt ein.
Kopieren
Den alten copy-Befehl können Sie weiterhin verwenden, sei es in der Eingabeaufforderung oder in der PowerShell. Geben Sie nach dem copy-Befehl den Objektnamen (zum Beispiel Datei- oder Ordnernamen) an, gefolgt vom Zielordner. Der Befehl copy hanna* C:\Users\gabri\Documents\Beispielfiles\ kopiert alle Dateien beginnend mit «hanna» aus dem aktuellen Ordner in den Ordner «Beispielfiles». Die Zieldateien werden ohne Rückfrage überschrieben, falls gleichnamige schon vorhanden wären. Passen Sie auch hiermit etwas auf.
Anführungszeichen
Die Cmd-Eingabeaufforderung und die neue PowerShell sind gleichermassen verwirrt, wenn Pfade Leerzeichen enthalten. Das betrifft sowohl Ordner- als auch Dateinamen. Das liegt daran, dass ein Leerzeichen für die Kommandozeilen bedeutet, dass nach ihm ein weiteres Befehlsargument kommt. Sobald Sie also in den Datei- oder Ordnernamen Leerzeichen haben, fassen Sie den ganzen Pfad in Anführungszeichen: copy hanna* "C:\Users\gabri\Documents\Beispiel files\".
In der PowerShell gehts alternativ auch mit dem einfachen geraden Anführungsstrich: 'Beispiel', Bild 9.
Hilfe anzeigen
Die klassische Eingabeaufforderung zeigt Ihnen mit Eingabe von help die möglichen Befehle an. Möchten Sie zu einem davon die genaueren Schalter haben, versuchen Sie es mit help und dem Befehlsnamen, zum Beispiel help sort. Was in Cmd auch immer noch funktioniert, ist der Befehlsname, gefolgt von /?, also sort /?.
In der PowerShell greifen Sie wie erwähnt zu get-help und dem Befehlsnamen (zum Beispiel get-help remove-item), versuchen Sie es jeweils auch mit dem zusätzlichen Schalter -online (get-help remove-item -online), um die ausführlichere Onlinehilfe anzuschauen.
Fenster leeren
Diesen Befehl hat die Autorin fürs Schreiben dieses Artikels häufig genutzt. Er löscht gar nichts, leert aber das Konsolenfenster. Tippen Sie hierfür in der Eingabeaufforderung oder PowerShell cls ein. Voilà!
Nützliche Tricks
Sowohl die PowerShell als auch die alte Eingabeaufforderung unterstützen Sie bei der Befehlseingabe mit ein paar sehr hilfreichen Funktionen. Sobald Sie die einmal kennen, wollen Sie darauf nicht mehr verzichten.
Per Tab ergänzen
Angenommen, Sie stehen in C:\Users\IhrName\. Nun wollen Sie mit cd Documents in den Unterordner Documents wechseln. Das müssen Sie nicht alles selbst eintippen! Tippen Sie cd doc ein und drücken Sie die Tab-Taste. Die Shell ergänzt den ersten Ordnernamen, der mit «doc» anfängt, automatisch!
Wenns der richtige ist, können Sie ihn übernehmen. Ists der falsche, drücken Sie nochmals Tab, damit der nächste Vorschlag erscheint. Das geht auch bei Dokumentnamen, die ja öfter etwas länger sind. Üben Sie das ein wenig. Es ist unglaublich praktisch. In der PowerShell klappt das nicht nur mit Ordner- und Dateinamen, sondern auch mit Befehlen.
Tippen Sie zum Beispiel copy ein und drücken Sie die Tab-Taste. Es erscheint der erste so beginnende Befehl. Nochmals Tab, der nächste und so weiter.
Per Pfeiltaste Befehle abrufen
Cmd und PowerShell merken sich die während dieser Session eingetippten Befehle. Angenommen, Sie tippen copy beispiel.xls ".\ Beispiel files\" ein. Das soll die Datei beispiel.xls in den Unterorder Beispiel files kopieren. Doch, oh, weh! Die Datei wird nicht gefunden, da sie eigentlich Beispiel.xlsx heisst.
Drücken Sie die Aufwärtspfeiltaste, steht der vorhin falsch eingetippte Befehl wieder da, Bild 10. So können Sie durch die Befehle blättern und sie erneut ausführen oder darin noch Teile ändern oder korrigieren. Fahren Sie per Linkspfeil an die Stelle, an der Sie das x reinflicken wollen, tippen Sie es ein und drücken Sie erneut Enter, um die korrigierte Fassung des Befehls auszuführen.
Kopieren aus dem Fenster
Möchten Sie aus einem Cmd- oder PowerShell-Fenster etwas kopieren? Markieren Sie die gewünschte Zeichenfolge per Maus. Drücken Sie Enter. Wechseln Sie zur Anwendung, in der Sie das Kopierte einfügen wollen, und drücken Sie Ctrl+V.
Einfügen ins Fenster
Haben Sie in einem Onlinetipp vielleicht einen Befehl gefunden, den Sie direkt in das PowerShell- oder Cmd-Fenster kopieren wollen? Gar kein Problem. Markieren Sie auf der Webseite mit dem Tipp exakt die gewünschte Zeichenfolge und drücken Sie zum Kopieren Ctrl+C oder klicken Sie mit rechts drauf und wählen Kopieren. Klicken Sie jetzt einfach mit der rechten Maustaste ins Konsolenfenster. Schon erscheint das Kopierte.
Aufgepasst: Wenn Sie Zeilenschaltungen mitkopiert haben, interpretieren Kommandozeilen dies als Enter und führen Teile der kopierten Anweisung bereits aus. Passen Sie darauf auf.
PowerShell-Cmd-Wechsel
Sind Sie in der PowerShell gelandet, möchten aber in die Eingabeaufforderung? Tippen Sie in der PowerShell einfach cmd ein und drücken Sie Enter, Bild 11. Damit öffnet die PowerShell eine Cmd-Instanz, erkennbar an der Versionsinfo und am Prompt, dem kein «PS» voransteht. Möchten Sie wieder zur PowerShell zurückwechseln, tippen Sie exit ein.
Kommentare
Es sind keine Kommentare vorhanden.