vwtyp3
Goto Top

Mehrere Dateien zusammenkopieren mit Dateiname im Inhalt

hallo,

ich habe mehrere dateien, die mehrere zeilen beinhalten. ich versuche nun, diese dateien zu einer zusammen zu kopieren, was auch geht. da ich aber hinterher nicht mehr weiss, welche zeilen aus welcher datei kommen, müßten die zeilen der neuen datei mit dem dateinamen der ursprungsdatei anfangen. ein beispiel:

a.txt:
1111111111111111
2222222222222222
3333333333333333

b.txt:
1111111111111111
2222222222222222
3333333333333333

zieldatei.txt:
a.txt 11111111111111111
a.txt 22222222222222222
a.txt 33333333333333333
b.txt 11111111111111111
b.txt 22222222222222222
b.txt 33333333333333333

hat jemand eine idee ?

danke und gruss
carsten

Content-Key: 62517

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

Printed on: May 5, 2024 at 02:05 o'clock

Member: Biber
Biber Jun 27, 2007 at 16:09:58 (UTC)
Goto Top
Moin vwtyp3,

willkommen im Forum.

Als Skizze würde mein Lösungsansatz so aussehen:
[Demo am CMD-Prompt]
(=18:03:42  D:\temp=)
>for %i in (test37.txt test99.txt) do @for /f "delims=" %j in ('type %i') do @echo %i %j  
test37.txt AuthType Basic
test37.txt AuthName "Service-Bereich"  
test37.txt AuthUserFile /usr/verwaltung/web/.htusers
test37.txt Require valid-user
test37.txt Order deny,allow
test37.txt Deny from all
test37.txt Allow from
test37.txt Satisfy any
test99.txt ABC2888
...also zwei FOR-Anweisungen hintereinander.
Und den Output in eine neue Zieldatei.

Im Batch dann sinngemäß:
@(for %%i in (a.txt b.txt) do @(
       for /f "delims=" %%j in ('type %%i') do @(  
        echo %%i %%j
       )))>zieldatei.txt
Member: vwtyp3
vwtyp3 Jun 27, 2007 at 19:23:14 (UTC)
Goto Top
wahnsinn !!!

ehrlich, super. hat geklappt. danke.
ich habe (a.txt b.txt) durch (*.txt) ersetzt und dann auch der zieldatei eine andere endung gegeben (wurde sonst selbst nochmals in sich eingepackt, rekursiv oder wie das heißt) und somit werden alle *.txt dateien zusammenkopiert.

wo kann man so etwas nachlesen, lernen etc ?
wenn man %1 in der kommandozeile benutzt, muß man im batch %%1 nehmen, das weiss ich wohl, aber wie erklärt sich der rest ?

normalerweise ändere ich bei solchen sachen immer ein bisschen, um zu sehen was sich ändert und so zu verstehen, aber das sagt mir alles nicht viel.

daher, danke danke danke.

gruss
carsten
Member: Biber
Biber Jun 27, 2007 at 19:48:06 (UTC)
Goto Top
Moin carsten,

na ja, Zauberei ist es auch nicht...eher solides Handwerk. face-wink

Eines möchte ich noch richtigstellen:
wenn man %1 in der kommandozeile benutzt, muß man im batch %%1 nehmen...
Jein... bei den so genannten dynamischen (Zähl-)Variablen der FOR-Anweisung werden im Batch zwei %-Zeichen statt einem am CMD-Prompt genommen.
Die Platzhalter %0, %1, ... %9 als Parameter (oder letzten Endes dem Argc/Argv-Pendant aus C), die bleiben immer mit nur einem %-Zeichen.


wo kann man so etwas nachlesen, lernen etc ?
Nachlesen: bei aller Bescheidenheit: hier im Forum und evtl noch in der Handvoll Links im Bereich "Batch & Shell".
Die drittbeste Quelle danach ist dann schon die Hilfe am CMD-Prompt, also "help" und dann weiter mit "help Befehl".
Lernen: genau wie die Zubereitung von Sauce Hollandaise oder Mousse au chocolat..
...einfach versuchen...
...nach ein paar 100 Malen klappts auch bei Stromausfall und wenn keine Butter im Haus ist.

Grüße
Biber