Windows-Kommandozeile – <Meta-Tag /> http://localhost/blog Mein privater Blog Wed, 25 Apr 2018 19:31:08 +0000 de-DE hourly 1 https://wordpress.org/?v=4.9.4 Suche nach Text in Dateien http://localhost/blog/index.php/2017/02/01/suche-nach-text-in-dateien/ http://localhost/blog/index.php/2017/02/01/suche-nach-text-in-dateien/#respond Wed, 01 Feb 2017 21:29:48 +0000 http://localhost/blog/?p=9496 Eigentlich ist das ein ganz simples Problem: Ich habe eine Reihe von Textdateien und möchte herausfinden, in welchen der Dateien ein bestimmter Textschnipsel vorkommt. Das könnten z. B. Cpp-Dateien sein, also Quelltexte für C++. Ich möchte herausfinden, in welchen Dateien ein bestimmter Ausdruck vorkommt. Das geht auf der Windows-Kommandozeile eigentlich ganz einfach:

find “mein Ausdruck” *.cpp

Den Befehl find gibt es schon sehr lange. Selbst in den ersten Versionen von MS-DOS war er schon enthalten und er funktioniert heute auf der Kommandozeile von Windows 10 immer noch.

Der Befehl find hat aber auch gewisse Einschränkungen. Schaut man sich mit find /? mal die möglichen Optionen an, dann sieht man, dass es da nicht so sehr viele Möglichkeiten gibt. Eine Option fehlt mir ganz besonders: Das rekursive Suchen in allen Unterordnern. Ist man mit einem größeren Programmierprojekt beschäftigt, dann gibt es Unterordner en masse. In jeden Ordner mit cd wechseln und dann suchen, das geht nicht.

Es gibt aber Abhilfe. Der Befehl findstr bietet alle Möglichkeiten, die man sich so wünscht.

Mit findstr /s “mein Ausdruck” *.cpp werden alle cpp-Dateien im aktuellen Ordner und in allen Unterordnern nach “mein Ausdruck” durchsucht. Mit findstr /r ist auch die Verwendung von regulären Ausdrücken möglich. Mit findstr /? kann man sich alle Möglichkeiten anzeigen lassen. Der Befehl findstr ähnelt in seinen Möglichkeiten sehr dem jeden Linux-Nutzer bekannten Befehl grep.
Den Befehl find kann man also getrost vergessen und stattdessen findstr nutzen.

]]>
http://localhost/blog/index.php/2017/02/01/suche-nach-text-in-dateien/feed/ 0
Ordnerbaum anzeigen http://localhost/blog/index.php/2016/11/14/ordnerbaum-anzeigen/ http://localhost/blog/index.php/2016/11/14/ordnerbaum-anzeigen/#respond Mon, 14 Nov 2016 19:58:23 +0000 http://localhost/blog/?p=9461 Grafisch Benutzeroberflächen haben schon so ihre Vorteile. Beispielsweise kann man im Windows-Explorer sehr übersichtlich den Ordnerbaum anzeigen lassen.

Exlporer
Windows-Explorer

Listet man auf der Windows-Kommandozeile den Inhalt mit dir auf, dann erkennt man die enthaltenen Unterordner an dem <DIR> vor dem Namen. Der Inhalt des Unterordners bleibt aber verborgen.

dir

Abhilfe schafft der Befehl tree. Damit wird der gesamte Baum einschließlich aller Unterordner aufgelistet. Mit tree /f werden zusätzlich noch alle in den Ordnern enthaltenen Dateien aufgelistet.

tree

]]>
http://localhost/blog/index.php/2016/11/14/ordnerbaum-anzeigen/feed/ 0
Hash-Werte von Dateien berechnen http://localhost/blog/index.php/2016/09/07/hash-werte-von-dateien-berechnen/ http://localhost/blog/index.php/2016/09/07/hash-werte-von-dateien-berechnen/#respond Wed, 07 Sep 2016 20:06:05 +0000 http://localhost/blog/?p=9361 Die Kommandozeile von Windows ist ein oft unterschätztes Werkzeug und das völlig zu Unrecht. Mit ein paar eingetippten Befehlen lassen sich oft Aufgaben sehe effektiv erledigen. Die Windows-Kommandozeile ist schon lange nicht mehr das Notfallwerkzeug, um alte DOS-Programme noch ausführen zu können, so wie es bei den ersten Windows-Versionen noch der Fall war. Von der Leistungsfähigkeit des Terminals unter Linux ist die Windows-Kommandozeile sicherlich noch weit entfernt. Aber für viele Aufgaben, für die ein Linux-Benutzer das Terminal benutzt, gibt es unter Windows oft ähnliche Möglichkeiten. Ich werde in kurzen Artikeln hier immer mal wieder ein paar Lösungen für kleine Probleme des Alltags posten.

Beispiel: Ich habe zwei Dateien und möchte herausbekommen, ob diese den gleichen Inhalt haben.

Das ist bei Textdateien kein großes Problem. Jeder bessere Texteditor hat ein Vergleichswerkzeug, mit dem Unterschiede festgestellt werden können.

Schwieriger wird es bei Dateien, die nicht im Texteditor angeschaut werden können, z. B. ausführbare Exe-Dateien. Die Dateigröße ist ein erster Hinweis. Wenn diese sich stark unterscheidend, dann sind die Dateien natürlich unterschiedlich. Ist die Dateigröße aber gleich, dann könnten sich die Dateien aber trotzdem unterscheiden. Eine sehr zuverlässige Methode ist es dann, die Hash-Werte der Dateien zu berechnen und zu vergleichen. Hashs sind eine Prüfsumme, die nach bestimmten Algorithmen berechnet werden. SHA-1 und MD5 sind sicherlich die bekanntesten Verfahren. Wenn die SHA-1- oder MD5-Prüfsummen von zwei Dateien gleich sind, dann kann man mit sehr hoher Sicherheit davon ausgehen, dass der Inhalt der Dateien ebenfalls gleich ist.

Vielleicht wird der ein oder andere jetzt einwenden, dass beide Algorithmen gebrochen sind und es vorkommen kann, dass bei unterschiedlichen Dateien trotzdem die gleichen Prüfsummen herauskommen. Das tritt aber extrem selten auf. Da es hier nicht um eine sicherheitsrelevante Anwendung geht, können wir das getrost vernachlässigen.

Microsoft bietet das Tool FCIV zum Download an. Nach dem Entpacken erhält man ein Kommandozeilenprogramm FCIV.exe. Das kopiert man am besten in einem Ordner, der in der PATH-Variabe erwähnt wird.

Die Anwendung ist ganz einfach:

fciv -md5 datei1.exe

Errechnet die MD5-Prüfsumme der datei1.exe.

fciv -sha1 datei1.exe

Errechnet die SHA-1-Prüfsumme der datei1.exe.

fciv -both datei1.exe

Berechnet die MD5- und die SHA-1-Prüfsumme.

Mit fciv -h erfährt man, was das Tool noch so alles kann.

FCIV

Oft wird für Download auch eine MD5-Prüfsumme angegeben. Das Tool bietet sich auch hierfür an, den Integrität der heruntergeladenen Datei zu überprüfen

Für Linux gibt es ein ähnliches Tools namens md5sum, sha1sum und sha256sum. Diese sind bereits im Betriebssystem enthalten und müssen nicht erst installiert werden.

Für MacOS X heißen die analogen Befehle md5 und sha1sum.

]]>
http://localhost/blog/index.php/2016/09/07/hash-werte-von-dateien-berechnen/feed/ 0