Avatar billede jørn meyer Mester
04. december 2018 - 14:59 Der er 7 kommentarer

DOS Batchfil udlæse data fra fil.txt

Jeg har nogle filer *.txt der indeholder navne i formatet
abcdefghij.txt

Jeg ønsker disse data lagt over i en ny fil i komma-separeret format.
abcdefghij.txt,abcdefghij.txt,abcdefghij.txt, o.s.v

Kan I hjælpe mig med batch kommando til denne opgave?

På forhånd tak.
Med venlig hilsen
Jørn Meyer
Avatar billede Slettet bruger
04. december 2018 - 15:04 #1
gå i DOS prompt og stil dig i den mappe hvor dine .txt filer er
skriv så:

DIR *,txt >liste.txt

nu har du dem i en liste, og kan med en makro eller manuelt formattere dem til det ønskede
Avatar billede hjolsen Ekspert
04. december 2018 - 15:37 #2
jeg ville bruge parameter  /b :
DIR  /B  *.txt >liste.txt
Avatar billede jørn meyer Mester
05. december 2018 - 20:02 #3
Sidwave & Hjolsen.
Tak for jeres svar. Men det var ikke heri opgaven lå.

Jeg ønsker opgaven løst via en batch-fil
1 jeg har en fil med en lang liste navne 750 stk navneliste.txt
  et navn på hver linie
2 Navnelisten skal læses og indskrives i en ny fil hvor navnene lægges i formatet kommaseparerede.

Det er sløjfen med at læst data fra navneliste.txt og herefter at skrive (append) til nyliste.cvs
Avatar billede hjolsen Ekspert
06. december 2018 - 05:45 #4
Hvis din txt fil ikke indeholder special tegn  kan du blot omdøbe til csv
Avatar billede jørn meyer Mester
06. december 2018 - 10:16 #5
Tak Hjolsen.
De data der ligger i '.txt er rene data, jeg skal under transmissionen have tilføjet et simikolon.
Når det er gjort og data ligger i den nye fil skal de afleveres til den database der kun kan importere en csv fil
Så det er ikke nok at omdøbe, det prøvede jeg og det var ikke et problem at læse filen, men der manglede semikolon.
Så prøvede jeg en tungere vej.
Når data var inde i en csv fil i kolonne A lavede jeg en makro, der lagde semikolon i kolonne B
Derefter gemte jeg data i en ny.txt. denne fil importerede jeg i en ny.csv fravalgte separatortegn og så vat data+semikolon i kolonne A.
Det er omstændigt, derfor, en batchfil kan gøre det i et hug.
Avatar billede hjolsen Ekspert
06. december 2018 - 10:47 #6
Prøv om notepad++ ikke kan hjælpe dig
https://notepad-plus-plus.org/download/v7.6.html
Måske med erstatte linjeskift med mellemrum og derefter erstatte mellemrum med  simikolon ?
Avatar billede bvirk Guru
06. december 2018 - 11:29 #7
.bat filer (cmd scripts) dur ikke til fil indholds manipulation, dertil kan man anvende f.eks vbscript som jo er integreret i windows.

Kaldes scriptet crlf2csv.wsf, og ligger med linieskift filen i navne.txt  køres det således:

cscript crlf2cvs.wsf navne.txt navne.csv

<?xml version="1.0" standalone="yes" ?>
<job id="test">
  <object id="pFSO" progid="Scripting.FileSystemObject"/>
  <reference object="Scripting.FileSystemObject"/>
  <script language="VBScript">
    with pFSO.OpenTextFile(wscript.arguments(0),forReading)
        while not .AtEndOfStream
            csvStr=csvStr + .ReadLine + ","
        wend
        .close
    end with
    csvStr= left(csvStr,len(csvStr)-1)
    With pFSO.OpenTextFile(wscript.arguments(1), forWriting, true)
        .Write csvStr
        .Close : End With
  </script> 
</job>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester