find und move kombieren
Hallo,
ich möchte mit dem find- oder findstr-befehl und move-befehl kombinieren und dabei Dateien des gleichen Typs in einen anderen Ordner verschieben.
Mit find will ich die Dateien nach einer Zeichenfolge durchsuchen und die gefunden Dateien mit einem move befehl verschieben.
Wie stelle ich das an, die befehle einzeln sind kein Problem nur beide zusammen bekomme ich nicht hin.
Einfache Batchdateien sind kein Thema, nur von for, if usw. hab ich keine Ahnung.
Vielen Dank
ich möchte mit dem find- oder findstr-befehl und move-befehl kombinieren und dabei Dateien des gleichen Typs in einen anderen Ordner verschieben.
Mit find will ich die Dateien nach einer Zeichenfolge durchsuchen und die gefunden Dateien mit einem move befehl verschieben.
Wie stelle ich das an, die befehle einzeln sind kein Problem nur beide zusammen bekomme ich nicht hin.
Einfache Batchdateien sind kein Thema, nur von for, if usw. hab ich keine Ahnung.
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33887
Url: https://administrator.de/forum/find-und-move-kombieren-33887.html
Ausgedruckt am: 29.04.2025 um 02:04 Uhr
4 Kommentare
Neuester Kommentar

[EDIT]
UUUpsss! Sorry, habe nachträglich gemerkt, dass es um Windows geht. Na ja, da kannst Du trotzdem auch mit | arbeiten. ----
[/EDIT]
Hallo,
ist jetzt nur am Reißbrett überlegt:
Befehle verbindest Du mit dem Zeichen: | Der Output des einen Befehls wird dann an den nächsten weiter gegeben. Etwa so:
find -iname *\.php | less
"find" sucht alle Dateien mit der Endung php und less sorgt dafür, dass nicht einfach tausende am Bildschirm an mir vorbei rutschen sondern ich durch die Ergebnisse scrollen kann...
Das ist das eine. Allerdings weiß ich nicht - und kann es gerade auch nicht testen - ob es sich so einfach mit einem move Befehl verbinden lässt, denn: Im beispiel werden an less ja nicht die einzelnen gefundenen Dateinamen als string übergeben sondern die ganze Liste auf einmal...
Lies Dich mal in "Pipes" ein:
http://de.wikipedia.org/wiki/UNIX_pipes#Unix
http://www.bellevuelinux.org/pipes.html
Vielleicht hat noch jemand eine Idee.
Gruß,
Tim
UUUpsss! Sorry, habe nachträglich gemerkt, dass es um Windows geht. Na ja, da kannst Du trotzdem auch mit | arbeiten. ----
[/EDIT]
Hallo,
ist jetzt nur am Reißbrett überlegt:
Befehle verbindest Du mit dem Zeichen: | Der Output des einen Befehls wird dann an den nächsten weiter gegeben. Etwa so:
find -iname *\.php | less
"find" sucht alle Dateien mit der Endung php und less sorgt dafür, dass nicht einfach tausende am Bildschirm an mir vorbei rutschen sondern ich durch die Ergebnisse scrollen kann...
Das ist das eine. Allerdings weiß ich nicht - und kann es gerade auch nicht testen - ob es sich so einfach mit einem move Befehl verbinden lässt, denn: Im beispiel werden an less ja nicht die einzelnen gefundenen Dateinamen als string übergeben sondern die ganze Liste auf einmal...
Lies Dich mal in "Pipes" ein:
http://de.wikipedia.org/wiki/UNIX_pipes#Unix
http://www.bellevuelinux.org/pipes.html
Vielleicht hat noch jemand eine Idee.
Gruß,
Tim
Moin marwin,
ganz klar ist mir noch nicht, nach welchem Kriterium Du nun verschieben willst... nach aktuellem Datum oder enthaltenem Suchtext...
Nehmen wir erstmal den Suchtext:
Wenn ich alle *.txt-Dateien im aktuellen Verzeichnis nach dem String "Biber" durchsuchen will und diejenigen nach "c:\temp\biberfound" verschieben, die den String enthalten, dann:
Das "Echo" ist natürlich nur zur Simulation und muss zum Scharf-Machen gelöscht werden.
Falls ich Dich falsch verstanden habe, formulier bitte Deine Anforderung nochmal um.
Gruß
Biber
ganz klar ist mir noch nicht, nach welchem Kriterium Du nun verschieben willst... nach aktuellem Datum oder enthaltenem Suchtext...
Nehmen wir erstmal den Suchtext:
Wenn ich alle *.txt-Dateien im aktuellen Verzeichnis nach dem String "Biber" durchsuchen will und diejenigen nach "c:\temp\biberfound" verschieben, die den String enthalten, dann:
for /f %i in ('dir /b *.txt') do @type %i|find /i "Biber">nul && Echo Move %i c:\temp\biberfound\%i
[würde führen zu...]
Move Temp-Dokument.txt c:\temp\biberfound\Temp-Dokument.txt
-oder noch einfacher-
for %i in (*.txt) do @type %i|find /i "Biber">nul && Echo Move %i c:\temp\biberfound\%i
Das "Echo" ist natürlich nur zur Simulation und muss zum Scharf-Machen gelöscht werden.
Falls ich Dich falsch verstanden habe, formulier bitte Deine Anforderung nochmal um.
Gruß
Biber