Toon posts:

[XP] Input om filenames te veranderen in simpele batch.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik probeer een simpel batch bestandje te maken om een aantal samen te voegen.
Het normale dos-commando hiervoor is heel simpel:
copy file0822.doc+file0823.doc+file0824.doc+file0825.doc fileweek34.doc

Hier worden dus alle regels van de 3 bestanden onder elkaar gegooid en in 1 bestand gemieterd.

In mijn specifieke geval zijn de getallen achter de bestandsnamen data.
Dit verschilt dus per week.

Nu wil ik dus eigenlijk dat als de batch gestart wordt dat er om een input gevraagd wordt.
Eerst om de data (het liefst een 'van-tot', bijv. van 0822 - 0825 en dat dan de tussenliggende automatisch bepaald worden)
En hierna het weeknummer als wat het bestand weggeschreven moet worden.

Heeft er iemand enig idee hoe ik dit voor elkaar kan krijgen?

Alvast bedankt!

  • Brent
  • Registratie: September 2001
  • Laatst online: 26-03 15:26
En daar krijg jij een werkende .doc uit? Of gaat het om het principe? Met de meeste bestanden gaat dit namelijk niet werken (headers enzo :)).

Humanist | Kernpower! | Determinist | Verken uw geest | Politiek dakloos


Verwijderd

Topicstarter
Breepee schreef op woensdag 31 augustus 2005 @ 13:44:
En daar krijg jij een werkende .doc uit? Of gaat het om het principe? Met de meeste bestanden gaat dit namelijk niet werken (headers enzo :)).
hier komt zeker een werkend .doc bestandje uit :)
Het zijn bestanden met allemaal dezelfde type regels in dezelfde record lengte.
Geen headers o.i.d.
Bijvoorbeeld, bestandje heeft 50 regels met een recordlengte van 150 (naam,adres,woonplaats,email)
en bestand 2 in het zelfde formaat 175 regels.

Door hier simpel copy file1.doc+file2.doc file_totaal.doc te doen, komt er een file_totaal.doc uit met netjes onder elkaar 225 records. :)

  • Mephix
  • Registratie: Augustus 2001
  • Laatst online: 25-11-2025
Zoek eens op what.exe met google ofso ?

Klein commandline tooltje (bijv. voor gebruik in batch files), waarmee je userinput in variabelen op kan slaan.

Bijv:
what S "Welke week wilt u gebruiken ?"
echo U tikte week %what%

De userinput wordt dus in de %what% variabele opgeslagen.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Kijk eens naar:

code:
1
2
set /p %startloop%=Start:
set /p %endloop%=End:


en dan later iets als:

code:
1
for /l %i in (%startloop%,1,%endloop%) do @echo %i


? :)

Verwijderd

Topicstarter
Mephix schreef op woensdag 31 augustus 2005 @ 13:55:
Zoek eens op what.exe met google ofso ?

Klein commandline tooltje (bijv. voor gebruik in batch files), waarmee je userinput in variabelen op kan slaan.

Bijv:
what S "Welke week wilt u gebruiken ?"
echo U tikte week %what%

De userinput wordt dus in de %what% variabele opgeslagen.
what.exe kende ik nog niet, ik ga het proberen!

Verwijderd

Topicstarter
elevator schreef op woensdag 31 augustus 2005 @ 13:58:
Kijk eens naar:

code:
1
2
set /p %startloop%=Start:
set /p %endloop%=End:
Dit is al heel handig, alleen hoe krijg ik nu die invoer die ingegeven is, in de bestandsnaam?

Ik zal wel heel dom overkomen, maar ik kom er echt niet uit

thnx!

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Nou, die "%startloop%" is op dat moment een environment variable - zoals je in mijn andere regel kan zien (die "for") gaan we met die twee variabelen loopen, je moet dan gaan appenden, bv iets als:

code:
1
for /l %i in (%startloop%,1,%endloop%) do @set filename=%filename%+longfilename_%i.doc


en dan

code:
1
echo %filename%


Maar dit is allemaal theoretisch - ga er zelf eventjes mee aan de slag :)

Verwijderd

Topicstarter
elevator schreef op woensdag 31 augustus 2005 @ 14:12:
Nou, die "%startloop%" is op dat moment een environment variable - zoals je in mijn andere regel kan zien (die "for") gaan we met die twee variabelen loopen, je moet dan gaan appenden, bv iets als:

code:
1
for /l %i in (%startloop%,1,%endloop%) do @set filename=%filename%+longfilename_%i.doc


en dan

code:
1
echo %filename%


Maar dit is allemaal theoretisch - ga er zelf eventjes mee aan de slag :)
Dit snap ik !
Ik ga dr mee aan de gang!

Verwijderd

wordt nog leuk als je van 08-29 to 09-07 automatisch wilt gaan doen :)

btw volgens mij werkt een auto expansie van een var niet in een for loop.

ipv de @set zoiets gebruiken...

for .... do call :expandvar %%i
goto :eof

:expandvar
set filename=%filename%+filename_%1
goto :eof
Pagina: 1