Forum
Tipps
News
Menu-Icon

CMD - find Abfrage mehrerer Dateien

Hallo,

ich habe ein Verzeichnis, in dem ständig txt Dateien reinkommen. Diese möchte ich mit "find" nach einem bestimmten Inhalt abfragen und wenn er eine Datei mit diesem Inhalt findet, dann soll diese Datei meinetwegen irgendwo verschoben werden. Mit einer Datei wäre es leicht, aber wenn mehrere Dateien mit unterschiedlichen Dateinamen vorliegen, dann weiß ich nicht, wie ich das angehens soll.



Antworten zu CMD - find Abfrage mehrerer Dateien:

Hi Rumak,
vllt mit ner Pipe?
Hier ganz unten:
http://www.i8086.de/dos-befehle/find.html
mal so als Denkansatz ;D

@ SQL-Freak
Rumak erwartet meist fertige Lösungen! ;)

aber mit
FOR
FIND oder FINDSTR
& oder &&  (wobei ich && benutzen würde)
MOVE

klappt das in einer Zeile

Hilfe wäre jetzt

START > AUSFÜHREN > CMD

HELP  FOR
HELP  FIND
HELP  FINDSTR
HELP  MOVE


 

Für fertige Lösungen bin ich zu faul, ich schreibe sowas erst, wenn ich's selber brauche ;D

@Rumak18 wie Du siehst gibts viele feine Möglichkeiten, such Dir einfach eine aus ;) 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

@Knut aus Hauptstadt:
Das liegt daran, weil ich meistens die Vorschläge schon kenne und/oder mich damit bereits zu lange auseinandergesetzt habe.
Find beispielsweise hat keine Option , um die Dateinamen direkt auszugeben.
Und in Verbindung mit "dir" sucht find nur im Dateinamen, nicht aber in den Dateien.
Mein Versuch:
 

Zitat
findstr /i /M "11111" c:\testumgebung\*.txt | move %1 c:\
scheitert leider , aber so sollte es eigentlich gehen, wobei hier ja nicht unbedingt alle Dateien abgedeckt sind, sondern nur die erste.

Auch das hier klappt nur für eine Datei:
 
Zitat
for /f %i in ('findstr /i /M "11111" c:\testumgebung\*.txt') do move %i c:\
 
Eine Idee wie ich das für alle gefundenen Dateien so setzen kann?
« Letzte Änderung: 21.10.10, 16:35:13 von Rumak18 »

 

Zitat
Das liegt daran, weil ich meistens die Vorschläge schon kenne und/oder mich damit bereits zu lange auseinandergesetzt habe
Meinen Vorschlag kennst du sicher? Nein kennst du nicht, weil dann hättest du hier nicht gepostet, weil du hättest eine Lösung!

Die Befehle die ich dir gepostet habe, werden in den Befehl genau in dieser Reihenfolge ein gesetzt

Dann kann du ganze Verzeichnisbäume nach beliebigen Dateien durchsuchen und in diesen nach beliebigen Zeichenfolgen und die Dateien die den Such Kriterien entsprechen in eine anderes Verzeichnis verschieben!

dein zweites Zitat ist recht nah dran, allerdings sie der Inhalt der Klammer etwas anders aus und FIND bzw FINDSTR kommt erst nach der Klammer
 
Zitat
('findstr /i /M "11111" c:\testumgebung\*.txt')

@SQL-Freak
Ich gewöhnlich auch! ;D

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Hmmm.... hilft mir leider auch so nicht weiter. Dass es so nicht klappt sehe ich ja selber, aber ich weiß auch schlicht und einfch nicht,wie ich es anders machen könnte, damit es klappt. 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

So.... für alle die zu faul sind:  ;D

 

Zitat
@echo off

set zieldatei=c:\ergebnis.txt
set suchpfad=c:\testumgebung
set zielpfad=c:\testumgebung\ziel

cd c:\
findstr /i /M "11111" %suchpfad%\*.txt > %zieldatei%
FOR /f "tokens=*" %%f IN (%zieldatei%) DO move "%%f" %zielpfad%
del %zieldatei%

Eigentlich müsste ich das patentieren lassen  8)

 

Zitat
Eigentlich müsste ich das patentieren lassen   
Dann sollte es aber fehlerfrei sein! ;)

 
Zitat
cd c:\
Laufwerkswechsel führt so nicht zum Ergebnis!
 Laufwerkswechsel
LW-Buchstabe:


Wechsel in die Systemroot aber auch nicht
 cd  \

A bissel umständlichlich, aber naja! ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 

Zitat
Eigentlich müsste ich das patentieren lassen   
Dann sollte es aber fehlerfrei sein! Wink
Auch etwas "nicht korrektes" lässt sich ja patentieren  :-*

Zurück zum Thema:

Bei mir läuft es perfekt wie gewünscht, auch das "cd c:\".
Und wenn dir  zwei Zeilen Scripting (Die anderen könnte man an sich ja weglassen) zu viel sind, dann Gute Nacht  ::) ...zumal es keine besseren Alternativ zu geben scheint, wie du selber in deinen Beiträgen sehen kannst.
   
« Letzte Änderung: 22.10.10, 14:53:25 von Rumak18 »

 

Zitat
Auch etwas "nicht korrektes" lässt sich ja patentieren

Schon zumal man dann "sein Patent" noch verbessen kann! ;D;D

"cd c:\".

bewirkt erstmal nichts

aber wie gesagt wenn du einen LW wechsel durchführen willst funktioniert das so nicht!

Willst du einen PATH-wechsel durchführen funktioniert das so nicht!

 
Zitat
Und wenn dir  zwei Zeilen Scripting (Die anderen könnte man an sich ja weglassen) zu viel sind, dann Gute Nacht 
darum geht es nicht!
ob zwei oder drei Zeilen
es ist nur eleganter wenn man es in einer Zeile löst!

und das habe ich schon in meinen ersten Post geschrieben!

 
Zitat
...zumal es keine besseren Alternativ zu geben scheint, wie du selber in deinen Beiträgen sehen kannst.
Wie gesagt es geht in einer Zeile!
Und ich habe dir gesagt das ich dir keine komplett-Lösung biete, ein bissel nachdenken kann nicht schaden zu mal ich dir die nötigen Befehle und auch deren Reihenfolge genannt habe! ;)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

 

Zitat
es ist nur eleganter wenn man es in einer Zeile löst!
und das habe ich schon in meinen ersten Post geschrieben!
Wo steht , dass es in einer Zeile eleganter ist? Mir kommt es langsam so vor, als wenn du anstatt nach Lösungen zu suche, hier Unfrieden suchst.
Zitat
Wie gesagt es geht in einer Zeile!
Wie gesagt... diese Lösung hast du bis dato nicht genannt und somit existiert sie erstmal nicht.

Aber lassen wir das...auch wenn bei dir "cd c:\" nicht funktioniert, DIE Lösung ist bereits geliefert und damit der Thread abgeschlossen.   

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

@echo off

set zieldatei=c:\ergebnis.txt
set suchpfad=c:\testumgebung
set zielpfad=c:\testumgebung\ziel

cd c:\
findstr /i /M "11111" %suchpfad%\*.txt > %zieldatei%
FOR /f "tokens=*" %%f IN (%zieldatei%) DO move "%%f" %zielpfad%
del %zieldatei%

 

Zitat
Wo steht , dass es in einer Zeile eleganter ist? 
Naja sieht jedenfalls besser aus! ;)

 
Zitat
Mir kommt es langsam so vor, als wenn du anstatt nach Lösungen zu suche, hier Unfrieden suchst.
Nur weil ich dir keine komplett Lösung hier poste, ist ja lustig!

 
Zitat
Wie gesagt... diese Lösung hast du bis dato nicht genannt und somit existiert sie erstmal nicht.
Das ist schon mal Quatsch!

Sie existiert, weil sonst würde ich das kaum schreiben!
 
Zitat
Und ich habe dir gesagt das ich dir keine komplett-Lösung biete, ein bissel nachdenken kann nicht schaden zu mal ich dir die nötigen Befehle und auch deren Reihenfolge genannt habe! 

Nur leider für dich nicht, schade

« Windows XP: sohn hat das passwort vergessen zum anmelten Win XP: Problem beim Starten »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Verzeichnis
Verzeichnisse, oft auch als Ordner bezeichnet, sind essenzielle Strukturelemente in einem Dateisystem, um Dateien und andere Verzeichnisse übersichtlich zu organisie...

Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...

Dateiendung
Die Dateiendung ist ein Teil des Dateinamen und zeigt das Dateiformat an. Klassisch war die "8.3" Regelung, nach der der Dateiname under MS DOS 8 Zeichen lang sein durfte...