Toon posts:

[batch] tekst invoegen aan begin bestand ipv eind

Pagina: 1
Acties:
  • 260 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo allemaal,

het probleem klinkt zo simpel, maar ik heb nog geen oplossing gevonden op google/got zoekende naar enter/insert/append text.

Ik wil graag tekst invoegen aan het begin van het bestand in plaats van aan het eind zoals wanneer je de append operator >> gebruikt. Met een voorbeeld:

ditbestand.txt ziet eruit als volgt:

b
c

En ik wil hier 'a' aan toevoegen op de eerste regel zodat:

a
b
c

en niet

b
c
a

De tekst die ik in wil voegen, past altijd op 1 regel. Ik heb nog gedacht aan het gebruik van een debug script maar kwam er niet uit. Misschien zou ik dan de bestaande inhoud moeten verplaatsen waarna ik tekst kan invoegen op de eerste regel, maar wellicht hebben jullie een (simpele) oplossing hiervoor?

Groetjes,
Cynthia

Verwijderd

ditbestand.txt appenden aan het bestand waarin de toevoeging staat?

dus a in een bestand zetten en ditbestand.txt hieraan appenden :)

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:33

NMe

Quia Ego Sic Dico.

In de meeste programmeertalen is de standaardoplossing het eerst wegschrijven van de regel die toegevoegd moet worden naar een leeg bestand, dan de rest van het bestand uit te lezen en weg te schrijven naar dat voorheen lege bestand, en vervolgens het oude bestand overschrijven met de nieuwe versie. Of dat in Batch anders kan weet ik niet, maar dat weten ze in Windows Clients vast beter. Zie ook Waar hoort mijn topic? ;)

PRG>>WOS

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Alvast bedankt!

Met deze tips heb ik nu de volgende "oplossing"

De string die ik aan het begin van het bestand b.txt wil invoegen, zet ik in a.txt en vervolgens concateneer ik de twee files mbv copy tot resultaat.txt. Maar eerst voeg ik een enter toe aan a.txt anders staan de strings direct achter elkaar en niet onder elkaar.

<code>
echo. >> C:\tmp\test\a.txt
copy C:\tmp\test\a.txt+C:\tmp\test\b.txt resultaat.txt
</code>

Ik krijg dan alleen zo'n geinig vierkantje aan het eind van resultaat.txt...

a.txt bevat:
a

b.txt bevat:
b

resultaat.txt bevat na uitvoeren code:
a
b[]

Met deze oplossing gebruik ik echter 3 bestanden. Weet iemand een oplossing met minder bestanden en weet iemand hoe ik in bovenstaande oplossing van het vierkantje (hier even aangeduid met [] ) afkom?

Groetjes

  • Straphka
  • Registratie: Augustus 2002
  • Niet online
kan je niet:

code:
1
2
echo <prependtekst> >> file.txt
echo <oorspronkelijketekst> >> file.txt


doen?
Dan heb je maar 2 files

edit:

Humz, code tags doen vreemd

[ Voor 20% gewijzigd door Straphka op 20-12-2006 14:16 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je kan met twee bestanden toe als je geen copy maar echo gebruikt. Maar wat (behalve de 'sport') maakt het uit hoeveel tijdelijke bestanden er zijn? Die kan je achteraf gewoon verwijderen.

Dat vierkantje hoort er niet, ik denk dat je <code> ergens gebruik maakt van uitvoer die de verkeerde EOLN codes gebruikt.
E:\Temp>echo a > a.txt
E:\Temp>echo b > b.txt
E:\Temp>copy a.txt+b.txt resultaat.txt
a.txt
b.txt
        1 file(s) copied.
E:\Temp>type resultaat.txt
a
b

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Ja maar het probleem is dat ik een string wil toevoegen aan een bestaand bestand dat al volstaat met strings.

Dus stel dat ik "deze string" wil toevoegen aan het begin van een bestand met de volgende inhoud:

dat
helemaal
volstaat
met
allerlei
regels
strings

zodat

deze string
dat
helemaal
volstaat
met
allerlei
regels
string

Kan ik dat dan met echo doen?

Verwijderd

Topicstarter
Als ik de code van F_J_K invoer in cmd dan gaat het inderdaad prima. Maar als ik het resultaat bestand vervolgens open in notepad bv dan staat het vierkantje er wel.

Maar goed, over 1 vierkantje kom ik wel heen en ik ruim alle temp bestanden inderdaad wel gewoon op.

Behalve natuurlijk als er nog iemand iets anders weet :-)
Pagina: 1