Linux find unter Windows
Hallo,
meine Windows-Batch-Kenntnisse sind relativ bescheiden
Ich suche ein äquivalent für den Linux Befehl "find", genauer gesagt will ich folgenden Befehl auf die Windows commandline "übersetzen"
find -type f -name "*.txt" -exec COMMAND {} \;
für COMMAND soll eine EXE aufgerufen werden in der Art "command.exe text.txt"
Danke für Ideen und Gruß
meine Windows-Batch-Kenntnisse sind relativ bescheiden
Ich suche ein äquivalent für den Linux Befehl "find", genauer gesagt will ich folgenden Befehl auf die Windows commandline "übersetzen"
find -type f -name "*.txt" -exec COMMAND {} \;
für COMMAND soll eine EXE aufgerufen werden in der Art "command.exe text.txt"
Danke für Ideen und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32727
Url: https://administrator.de/contentid/32727
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
7 Kommentare
Neuester Kommentar
Na,
das würde ich so übertrieben wie ratzla nicht formulieren...
Verwirrend an der folgende Zeile (wenn man/frau von der *NIX-Seite kommt) ist, dass der CMD-Prompt keinen find-Befehl hat, der sich AUF Dateien bezieht.
Der CMD-Find-Befehl bezieht sich nur auf die Suche in Dateien (das, was anderswo der grep übernimmt.
Dateien finden ist unter dem CMD-Interpreter immer irgendeine DIR-Variante.
Bei der Suche über ein ganzes Laufwerk liefert ein "dir /s /b [Lw:\pfad\]Dateimaske" alle Dateien auch in allen Unterverzeichnssen und zwar nur deren Namen (ohne Größe, Owner
etc).
Diese Liste wiederum kannst Du per angedeuteter FOR--IN..DO-Anweisung zur weiteren Verarbeitung übergeben, z.B. an eine *.Exe
Beispiel:
...würde alle Dateien *.txt auf dem aktuellen Laufwerk übergeben an die find.exe, die darin nach dem String "blank" sucht.
Wäre schon das Beisriel, was Du meintest - Du könntest also auch alle diese gefundenen Dateien an ein Zip-Tool.exe oder einen Virus-Check.exe oder an eine Editor.exe senden.
Zum besseren Verständnis am Besten den Zwischenschritt am CMD-Prompt machen:
...dann siehst Du, was ich mit der Liste meine, die so an STDOUT übergeben wird.
Die Liste sieht exakt aus wir ein "dir /b /s \*.txt" OHNE FOR..IN..DO drumherum, hat aber einzelneAusgabe-Parameter, die ich einzeln einer *.exe zuschanzen kann.
Statt mit echo etwas an die Console zu übergeben, kannst Du also diese Dateinamen auch einer *.exe,*.vbs, *.bat,...einer ausführbaren Datei übergeben.
Hope That Helps
Biber
das würde ich so übertrieben wie ratzla nicht formulieren...
Verwirrend an der folgende Zeile (wenn man/frau von der *NIX-Seite kommt) ist, dass der CMD-Prompt keinen find-Befehl hat, der sich AUF Dateien bezieht.
Der CMD-Find-Befehl bezieht sich nur auf die Suche in Dateien (das, was anderswo der grep übernimmt.
Dateien finden ist unter dem CMD-Interpreter immer irgendeine DIR-Variante.
Bei der Suche über ein ganzes Laufwerk liefert ein "dir /s /b [Lw:\pfad\]Dateimaske" alle Dateien auch in allen Unterverzeichnssen und zwar nur deren Namen (ohne Größe, Owner
etc).
Diese Liste wiederum kannst Du per angedeuteter FOR--IN..DO-Anweisung zur weiteren Verarbeitung übergeben, z.B. an eine *.Exe
Beispiel:
for /F "delims=" %i in ('dir /b /s \*.txt') do @find "blank" "%i"
...würde alle Dateien *.txt auf dem aktuellen Laufwerk übergeben an die find.exe, die darin nach dem String "blank" sucht.
Wäre schon das Beisriel, was Du meintest - Du könntest also auch alle diese gefundenen Dateien an ein Zip-Tool.exe oder einen Virus-Check.exe oder an eine Editor.exe senden.
Zum besseren Verständnis am Besten den Zwischenschritt am CMD-Prompt machen:
for /F "delims=" %i in ('dir /b /s \*.txt') do @echo %i
Die Liste sieht exakt aus wir ein "dir /b /s \*.txt" OHNE FOR..IN..DO drumherum, hat aber einzelneAusgabe-Parameter, die ich einzeln einer *.exe zuschanzen kann.
Statt mit echo etwas an die Console zu übergeben, kannst Du also diese Dateinamen auch einer *.exe,*.vbs, *.bat,...einer ausführbaren Datei übergeben.
Hope That Helps
Biber
Hallo!
Habe erst wenige Beiträge in diesem Forum gelesen und die Frage wurde vielleicht bereits an anderer Stelle behandelt.
Wie kann man das Problem mit find mit den Dateinamen mit Leerzeichen "My documents" in den Griff bekommen?
Habe auf meinem Rechner keine Administratorrechte (keine exe ausführen, kein regedit etc.).
Liebe Grüße
sfried
Habe erst wenige Beiträge in diesem Forum gelesen und die Frage wurde vielleicht bereits an anderer Stelle behandelt.
Wie kann man das Problem mit find mit den Dateinamen mit Leerzeichen "My documents" in den Griff bekommen?
Habe auf meinem Rechner keine Administratorrechte (keine exe ausführen, kein regedit etc.).
Liebe Grüße
sfried
@sfried100,
Ultraschnecke hat vollkommen recht: Pfad-/Dateinamen mit Leerzeichen werden in Anführungszeichen eingeschlossen.
Beispiele:
Du findest einige Beispiele z.B. im Bereich "Batch & Shell" über die Forumssuche.
Gruss
Biber
Ultraschnecke hat vollkommen recht: Pfad-/Dateinamen mit Leerzeichen werden in Anführungszeichen eingeschlossen.
Beispiele:
find "suchstring" "d:\Biber\Eigene Dateien\*.txt"
findstr "suchstring" "C:\Dokumente und Einstellungen\Biber\*.*"
findstr "suchstring" "C:\Dokumente und Einstellungen\Biber\*.*"
Du findest einige Beispiele z.B. im Bereich "Batch & Shell" über die Forumssuche.
Gruss
Biber