michael1309
Goto Top

TXT Datei durchsuchen und kopieren

Hallo,
ich müsste in einigen 1000 txt Dateien bestimmte Dateien anhand von einem Suchstring (Buchstaben/Zahlen) raus filtern und dann in einen anderen Ordner Kopieren.
Aus einen Grund, den ich noch nicht weiß, klappt leider meine Batch nicht.
Hat jemand vllt eine Idee, wo der Fehler liegt?

@echo off
for %%x in (findstr /R /C:"%Suchstring%"c:\mailExtract\*.txt) do xcopy "%Suchstring%" "c:\gefunden"

Danke
Gruß
Michael

Content-ID: 161207

Url: https://administrator.de/contentid/161207

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

pieh-ejdsch
pieh-ejdsch 21.02.2011 um 11:11:33 Uhr
Goto Top
moin Michael,

wenn Du eine Anweisung einer Forschleife als Befehl haben möchtest, musst Du diese Anweisung mit
For /f "delims=" %i in ( ' Anweisung ' ) do ...
Ankündigen.

was steht in der Variable Suchstring?

beim findstr muss mindestens ein Leerzeichen zwischen Suchstring und Datei sein.

Gruß Phil
michael1309
michael1309 21.02.2011 um 11:23:14 Uhr
Goto Top
Zitat von @pieh-ejdsch:

For /f "delims=" %i in ( ' Anweisung ' ) do ...

Moin Phil,
wie meinst du das mit dem Ankündigen?
Meine Batch Zeit ist schon was her.
Zum Testen haben ich

@echo off
set var=5
for %%x in (findstr /C:"%var%" "c:\mailExtract\*.txt") do xcopy "%var%" "c:\gefunden"
pause

genommen und eine TXT Datei mit einer 5 als Inhalt erstellt, die gefunden und kopiert werden soll.
Das passiert aber nicht. Habe den Eindruck, als würde nicht in der Datei gesucht sondern nur nach einer Datei.
Kann das sein?
pieh-ejdsch
pieh-ejdsch 21.02.2011 um 11:45:06 Uhr
Goto Top
die roten stellen in der Forschleife müssen bei einem Befehl unbedingt in der Forschleife Stehen.
also sowohl das /f für Funktion
als auch die umschließenden einfachen Hochkomma um den Befehl,
damit die Forschleife weis, was sie zu tun hat.

wenn Du genau wissen willst, was Dein Batch für Problemchen hat empfielt Timo immer (at)echo off oder batch4runaways part 0.0000001
aber mal zurück von der Theorie zu Thema:

 set "var=5"  
for %%x in ("c:\mailExtract\*.txt") do findstr /c:"%var%" "%%~x" >nul && xcopy "%%~x" "c:\gefunden"  

Gruß Phil
michael1309
michael1309 21.02.2011 um 11:55:34 Uhr
Goto Top
super Danke, jetzt klappt es.
Werde mich da jetzt nochmal reinlesen.
mustangdriver
mustangdriver 21.02.2011 um 14:55:58 Uhr
Goto Top
@pieh-ejdsch: Cooler Tipp
Danke