Bestanden aan elkaar rijgen met .bat

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

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Ik wil graag een groot excel bestand maken van allerlei kleinere bestandjes met de extensie *.dbf (kan gewoon in excel geopent worden)...

Nu gebruikte ik een zelfgemaakt bat bestandje met de volgende code daarvoor:

code:
1
FOR %%1 in (*.dbf) do type %%1 >> debavdata.xls


Nu maakt hij de bestanden mooi idd aan elkaar vast, maar hij fucked de data flink up :) Als ik alles eerst naar *.txt files rename en er ook een textfile van maak, dan lijkt het alsof er een spatie tussen is gekomen en hierdoor de kollommen zijn veranderd... Wat doe ik verkeerd :?

(En is er sowieso een andere/betere methode om bestanden snel aan elkaar te plakken)

Verwijderd

import alles naar excel .. en copy&paste een paar keer

  • Krypt
  • Registratie: April 2000
  • Laatst online: 01-09 10:35
Probeer dit eens; is wat mooier dan de type, waardoor je de kans hebt extra CRLF's er tussen te krijgen..

FOR %%x in (*.dbf) do copy /B debavdata.xls+%%x devbavdata.xls

Pvouput live


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Verwijderd schreef op 05 maart 2004 @ 09:42:
import alles naar excel .. en copy&paste een paar keer
hmmm het is iets meer dan een paar keer, zijn nogal veel bestanden dus daar ben ik dan wel meer dan een dag mee bezig

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Krypt schreef op 05 maart 2004 @ 09:44:
Probeer dit eens; is wat mooier dan de type, waardoor je de kans hebt extra CRLF's er tussen te krijgen..

FOR %%x in (*.dbf) do copy /B debavdata.xls+%%x devbavdata.xls
Hmmm dit werkt niet echt hij maakt geen nieuw bestand aan, snap niet wat dit precies doet want er gebeurt nix :)

  • Krypt
  • Registratie: April 2000
  • Laatst online: 01-09 10:35
zit een typfoutje in..
FOR %%x in (*.dbf) do copy /B debavdata.xls+%%x devbavdata.xls

En als er spaties in de namen zitten moet je fftjes quotjes om de %%x gooien..

[ Voor 3% gewijzigd door Krypt op 05-03-2004 09:57 ]

Pvouput live


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
zag he foutje idd al, maar zonder dat foutje doet hij nog steeds nix

edit: foutmelding in dos: %%x niet verwacht op dit moment.

[ Voor 32% gewijzigd door DarkShadow op 05-03-2004 10:01 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
dubbelpost :P

[ Voor 96% gewijzigd door DarkShadow op 05-03-2004 10:01 ]


  • Krypt
  • Registratie: April 2000
  • Laatst online: 01-09 10:35
Zie net dat dat komt omdat debavdata.xls bij de eeste kopieslag nog niet bestaat.. handig.. maar oplosbaar:
for %%x in (*.dbf) do if not exist debavdata.xls (copy /b "%%x" debavdata.xls) else (copy /b debavdata.xls+"%%x" debavdata.xls)

zo zou het moeten werken..
DarkShadow schreef op 05 maart 2004 @ 10:00:
[...]
edit: foutmelding in dos: %%x niet verwacht op dit moment.
Dat komt omdat je het direct in de commandline uitvoert en niet in een batchbestand hebt gezet.. als je het van de commandline af wilt doen moet je bij de variable de eerst '%' teken weghalen..

[edit]
En we blijven maar editten :D
dus: 2 procentjes in een batchfile, 1 procentje op de cmdline..

[ Voor 59% gewijzigd door Krypt op 05-03-2004 10:03 ]

Pvouput live


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Dat dacht ik dus ook, had gewoon een bestandje debavdata.xls leeg aangemaakt :), maar werkte nog steeds niet, ff dit proberen :)

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
hmmm vaag, doet nog steeds niets, als ik het in dos intiep (met % minder bij variabelen) dan vraagt hij 'Meer?' en doet voor de rest niet bijzonder veel

edit: ff jouw edit uitproberen :)

edit 2:

Het werkt wel (bestand wordt vier keer zo groot (test met 4 bestandjes)), maar ik krijg nu hetzelfde als dat ik dit doe:

code:
1
copy /b file1 + file2 + file3 etc


Wel een groter bestand, maar zodra ik hem open is de extra data nergens te bekennen :?

[ Voor 59% gewijzigd door DarkShadow op 05-03-2004 10:09 ]


  • Krypt
  • Registratie: April 2000
  • Laatst online: 01-09 10:35
"Meer?" ?? Welk os gebruik je trouwens?
Bij mij werkt het perfect onder W2k en XP...

Pvouput live


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Krypt schreef op 05 maart 2004 @ 10:08:
"Meer?" ?? Welk os gebruik je trouwens?
Bij mij werkt het perfect onder W2k en XP...
Winxp, maar dat 'meer' lag aan een % te weinig denk ik :)

[ Voor 4% gewijzigd door DarkShadow op 05-03-2004 10:10 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
hmm vaag, als ik alles rename naar txt, wordt het bestand ook groter, maar de extra data is gewoon niet te vinden :? Dat kan toch niet, kan er ff niet bij :)

  • PcDealer
  • Registratie: Maart 2000
  • Laatst online: 21-08 07:21

PcDealer

HP ftw \o/

Kun je niet import en dan alles selecteren? Of een makro maken.

LinkedIn WoT Cash Converter


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
PcDealer schreef op 05 maart 2004 @ 10:16:
Kun je niet import en dan alles selecteren? Of een makro maken.
een makro? (wasda), en import en dan alles selecteren? En wat daarna?

  • _nethack
  • Registratie: September 2000
  • Laatst online: 28-08 11:38

_nethack

We're all MAD here

Wat hebben die .dbf bestanden voor indeling? Dat klinkt als een database file ofzo, dus iets van data met ongetwijfeld een header erboven.
Als je die met de bovenstaande constructies achter elkaar plakt, dan krijg je een file met daarin een hoop .dbf'jes achterelkaar. Je moet natuurlijk niet verwachten dat als je die output file gewoon .xls noemt dat dan ineens op magische wijze de extra headers e.d. van die .dbf's worden afgehaald, en de uitvoer op al net zo magische wijze wordt omgezet in excel formaat (.xls)

Je kunt misschien beter die .dbf bestanden omzetten in iets zonder headers erboven. Liefst een textfile, in de vorm van een .csv (comma separated values) die je vervolgens allemaal achter elkaar kunt plakken met de for constructie, waarna de uitvoer wederom een .csv betreft. Die .csv kun je vervolgens importeren in Excel.

[ Voor 4% gewijzigd door _nethack op 05-03-2004 10:26 ]

Sometimes you just have to sit back, relax, and let the train wreck itself


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
_nethack schreef op 05 maart 2004 @ 10:24:
Wat hebben die .dbf bestanden voor indeling? Dat klinkt als een database file ofzo, dus iets van data met ongetwijfeld een header erboven.
Als je die met de bovenstaande constructies achter elkaar plakt, dan krijg je een file met daarin een hoop .dbf'jes achterelkaar. Je moet natuurlijk niet verwachten dat als je die output file gewoon .xls noemt dat dan ineens op magische wijze de extra headers e.d. van die .dbf's worden afgehaald, en de uitvoer op al net zo magische wijze wordt omgezet in excel formaat (.xls)

Je kunt misschien beter die .dbf bestanden omzetten in iets zonder headers erboven. Liefst een textfile, in de vorm van een .csv (comma separated values) die je vervolgens allemaal achter elkaar kunt plakken met de for constructie, waarna de uitvoer wederom een .csv betreft. Die .csv kun je vervolgens importeren in Excel.
Volgens mij klopt dat idd van die indeling, maar hoe zet ik die .dbf bestanden echt goed om naar txt bestanden (en niet simpel renamen)? (.csv zou natuurlijk helemaal al mooi zijn :) )

  • _nethack
  • Registratie: September 2000
  • Laatst online: 28-08 11:38

_nethack

We're all MAD here

Ja dat hangt er vanaf waar de file vandaan komen... .dbf klinkt als DBase, misschien heb je daar een export functie in?
Anders zul je inderdaad in Excel met macro functies aan de gang moeten, om geautomatiseerd al die files te importeren, of om ze stuk voor stuk te openen, en op te slaan als .csv.

Sometimes you just have to sit back, relax, and let the train wreck itself


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
waar kan ik meer info over die macro functies vinden?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

MS-DOS commando's en batch scripts in de SA FAQ :P

edit: ik las voor DOS batches :X

De F1 van Excel zelf is erg uitgebreid, in combnatie met de macro opneemknop en de code hiervan bekijken moet je een heel eind komen. Eventueel kan je hier een tutorial uitkiezen.

[ Voor 56% gewijzigd door F_J_K op 05-03-2004 11:14 ]

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


  • GeeBee
  • Registratie: Maart 2000
  • Laatst online: 22:13

GeeBee

Oddball

DarkShadow schreef op 05 maart 2004 @ 09:36:
Ik wil graag een groot excel bestand maken van allerlei kleinere bestandjes met de extensie *.dbf (kan gewoon in excel geopent worden)...
Als je de DBF's kunt openen in Excel, kun je ze toch gewoon in Excel aan elkaar knopen?

Woof, woof, woof, woof! That's my other dog imitation. | https://youtu.be/TzsNh3-FnHQ


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
GeeBee schreef op 05 maart 2004 @ 10:49:
[...]
Als je de DBF's kunt openen in Excel, kun je ze toch gewoon in Excel aan elkaar knopen?
Yup, dat snap ik, maar het zijn er in totaal nogal veel om aan elkaar te gaan knopen :)

  • Frisbee
  • Registratie: Februari 2000
  • Niet online
Staat er nu na de eerste file geen EOF (End of File) karakter?

  • GeeBee
  • Registratie: Maart 2000
  • Laatst online: 22:13

GeeBee

Oddball

Probeer DBF2CSV eens: http://www.dirfile.com/dbf2csv.htm

Daarmee kun je met

DBF2CSV *.DBF

van alle DBF's een CSV maken.

Vervolgens

COPY *.CSV IMPORT.TXT

en je hebt een prima importdocument voor Excel!

[ Voor 74% gewijzigd door GeeBee op 05-03-2004 11:36 ]

Woof, woof, woof, woof! That's my other dog imitation. | https://youtu.be/TzsNh3-FnHQ


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
Frisbee schreef op 05 maart 2004 @ 11:06:
Staat er nu na de eerste file geen EOF (End of File) karakter?
wanneer bedoel je? Bij het aan elkaar knopen met bat bestandje?

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 31-08 22:40
GeeBee schreef op 05 maart 2004 @ 11:21:
Probeer DBF2CSV eens: http://www.dirfile.com/dbf2csv.htm

Daarmee kun je met

DBF2CSV *.DBF

van alle DBF's een CSV maken.

Vervolgens

COPY *.CSV IMPORT.TXT

en je hebt een prima importdocument voor Excel!
tnx, werkt perfect dat omzetten...

Heb het gewoon aan mekaar kunnen rijgen met:

code:
1
FOR %%1 in (*.csv) do type %%1 >> debavdata.csv


copy heb ik niet geprobeert :) (had deez toch nog staan)
Pagina: 1