majcho
Goto Top

Text mit Findstr suchen und als Variable zum Kopieren derselben Datei nutzen

Möchte gerne den 2 Wert nach einem Suchstring aus Dateien als Variable zum Umbennen/Kopieren derselben Dateien übergeben.

Hier mein Versuchscode, der nicht funktioniert:

FOR /F "delims=" %%i in ('dir /b "C:\*.txt"') do (
for /f "tokens=2" %%g in (findstr "Suchstring: " %%i) do (copy %%i %%g.txt) )

Kann mir jemand mit dem richtigen Code helfen?

Soeben bemerkt, diese ungelöste Frage: Aus Fragmenten einer Textdatei eine neue Textdatei erzeugen bzw. das original bearbeiten geht in die selbe Richtung.


[Edit Biber] Link auf Permalink geändert [/Edit]
Kommentar vom Moderator Biber am 17.01.2011 um 06:30:06 Uhr
Zitat von @majcho:
Möchte gerne den 2 Wert nach einem Suchstring aus Dateien als Variable zum Umbennen/Kopieren...
Set / rgc+=1
#722

Content-ID: 158769

Url: https://administrator.de/forum/text-mit-findstr-suchen-und-als-variable-zum-kopieren-derselben-datei-nutzen-158769.html

Ausgedruckt am: 12.01.2025 um 09:01 Uhr

rubberman
rubberman 17.01.2011 um 01:01:37 Uhr
Goto Top
Hallo majcho.

Schwer zu sagen woran es liegt.
Ersetze mal copy durch echo und prüfe ob
- Leerzeichen in den Dateinamen vorkommen
- Zeichen im neuen Dateinamen vorkommen, die verboten sind ( \ / : * ? " < > | )
- Zeichen im neuen Dateinamen vorkommen, die maskiert werden müssen ( & ^ )

Grüße
rubberman
60730
60730 17.01.2011 um 10:50:05 Uhr
Goto Top
Auch dir den Gruß deiner Wahl face-sad

Wenn man in einer For Schleife eine weitere For Schleife hat, dann???


enabledelayedexpansion?
%%
!!

Für was hat sich eigentlich jemand die Mühe mit der Schleifenanleitung gemacht?

Grußlos
majcho
majcho 17.01.2011 um 11:15:56 Uhr
Goto Top
@echo off &setlocal enabledelayedexpansion
hatte ich gesetzt. Wo finde ich die Schleifenanwendung?
60730
60730 17.01.2011, aktualisiert am 18.10.2012 um 18:45:31 Uhr
Goto Top
Zitat von @majcho:
&setlocal enabledelayedexpansion
hatte ich gesetzt.
Und warum nutzt du dann %% statt !!
Wo finde ich die Schleifenanwendung?
Keine Ahnung - aber wenn du unter Anleitungen suchst .....

btw: Wenn ich (oder jemand anderes) schreibt auch dir keinen Gruß deiner Wahl, ist das eine höfliche Aufforderung.....
Und wenn Biber in seinem B Bereich lediglich seinen Counter setzt und nicht wie sonst üblich länger mit der Problematik befasst...
dann ist entweder Montag oder jemand in Bremen hat eine Vorahnung
majcho
majcho 17.01.2011 um 14:44:13 Uhr
Goto Top
Habe das Tutorial zur FOR-Schleife gefunden, jedoch geht das Tutorial nicht auf die Verschachtelung bzw. die Nutzung des doppelten !! ein.

FOR /F "delims=" %%i in ('dir /b "C:\*.txt"') do (
for /f "tokens=2" %%g in ('findstr "Suchstring:" %%i') do (copy %%i %%g.txt) )

Irgendwie ist ein Fehler im Befehl findstr, welcher?
rubberman
rubberman 17.01.2011 um 18:55:25 Uhr
Goto Top
Hallo Zusammen.

@t-mo
Ich kann keinen Grund entdecken, warum hier ein DelayedExpansion angebracht wäre. Es wird ausschließlich mit den Laufvariablen der Schleifen gearbeitet. Hmm...

@majcho
Vielleicht solltest du das Wort Suchstring: mal mit deinem tatsächlichen Suchstring ersetzten.
Ansonsten einfach mal meinen Tipps und dem von T-MO verlinkten "@echo off" folge leisten.

(auch keine Grüße)
rubberman
majcho
majcho 18.01.2011 um 10:51:40 Uhr
Goto Top
So endlich habe ich es gelöst, so funktioniert der code:

@echo off &setlocal enabledelayedexpansion 

echo -----------------------------------
FOR /F "delims=" %%i in ('dir /a-d /b /s "C:\Users\User\Documents\*.txt"') do (
FOR /f "tokens=2" %%j in ('FINDSTR "Suchstring" "%%~i"') do copy %%i %%j.txt)

[Edit Biber] Codeformatierung geradegezogen. [/Edit]