falaise
Goto Top

BATCH Verschiedene Textdateien vereinheitlichen

hallo zusammen,

ich hab 2 txt files vorliegen aus denen ich einen einheitlichen glossar erstellen soll. problem dabei ist, das die txt files unterschiedliche strukturen besitzen. ich möchte die files nun vereinheitlichen und für eine spätere datenbank bezogene bearbeitung vorbereiten.

hier zum beispiel:

TextDatei1:
b584658df665f09352ef4a9bf517b34e-2008.03.12.13.screenshot.38.unbenannt_-_editor


TextDatei2:
1dd0d32cd04a31537e303f255164e192-2008.03.12.13.screenshot.39.unbenannt_-_editor


ich möchte nun gerne die daten aus den txt files so auslesen, das sich folgende file ergibt:
3a6bc12de461311fdc1be004ae84f5aa-2008.03.12.13.screenshot.41.unbenannt_-_editor


problem dabei ist das in TextDatei1 die Begriffserklärung nach einem Doppelpunkt und ohne Zeilenumbruch beginnt (siehe Bild1):
Begriff1: blablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablabla

Begriff2: blablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla


in TextDatei2 beginnt die Begriffserklärung ohne Doppelpunkt und nach einem Zeilenumbruch (siehe Bild2):
Begriff1
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla
blablablablablablablablablablablablablablablablablablablabla

Begriff2
blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla


wie kann ich die beiden Textdateien nun möglichst einheitlich zusammenführen?

die ergebnis txt sollte möglichst so aussehen:
Begriff1: blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla

Begriff2: blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla


bin für jede hilfestellung dankbar.

grüße

Content-Key: 82937

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

Printed on: April 25, 2024 at 20:04 o'clock

Member: miniversum
miniversum Mar 12, 2008 at 13:18:12 (UTC)
Goto Top
Teste mal obs damit geht:
@echo off & setlocal

set firstline=1
FOR /F "delims=" %%f in ('dir /a-d /b *.txt') do (  
  echo.
  echo Verarbeite Datei: %%f
  echo Erzeuge Datei: %%~nf_neu%%~xf
  if exist "%%~nf_neu%%~xf" del "%%~nf_neu%%~xf"  

  FOR /F "tokens=1,2,* delims=:" %%i in ('findstr /n .* "%%f"') do (  
    if "%%j" equ "" (  
      echo.>>"%%~nf_neu%%~xf"  
    ) else (
      if "%%k" equ "" (  

        call:write2 "%%j" "%%~nf_neu%%~xf"  

      ) else (

        call:write1 "%%j" "%%k" "%%~nf_neu%%~xf"  

      )
    )
  )
)
goto:eof


:write2
if %firstline% equ 1 (
  echo %~1:>>%2
  set firstline=0
  goto:eof
)
if %firstline% equ 0 (
  echo %~1>>%2
  set firstline=1
  goto:eof
) 
goto:eof


:write1
echo %~1:>>%3
set line=%~2
echo %line:~1%>>%3
goto:eof
Von jeder Datei wird eine Neue kopie angelegt die entsprechend umformatiert ist. Willst du das die Dateien überschrieben werden ist das natürlich auch möglich. Aber est mal testen obs so funktioniert.
Member: falaise
falaise Mar 12, 2008 at 13:51:33 (UTC)
Goto Top
danke für hilfestellung, leider hat das nicht so geklappt.

ich bräuchte en txt file das in der struktur so aussieht, pro zeile eine begriffserklärung, also so:

Begriff1: blablablablablablablablablablablablablablablabla
Begriff2: blablablablablablablablablablablablablablablablablabla

dann kann ich diese daten schön in eine db einfügen.

danke nochmal
Member: miniversum
miniversum Mar 12, 2008 at 14:05:32 (UTC)
Goto Top
Oh da hat mich woll der automatische Zeilenumbruch vom Browser reingelegt.
Dann versuchs mal damit:
@echo off & setlocal

set firstline=1
FOR /F "delims=" %%f in ('dir /a-d /b *.txt') do (  
  echo.
  echo Verarbeite Datei: %%f
  echo Erzeuge Datei: %%~nf_neu%%~xf
  if exist "%%~nf_neu%%~xf" del "%%~nf_neu%%~xf"  

  FOR /F "tokens=1,2,* delims=:" %%i in ('findstr /n .* "%%f"') do (  
    if "%%j" equ "" (  
      echo.>>"%%~nf_neu%%~xf"  
    ) else (
      if "%%k" equ "" (  

        call:writeit "%%j" "%%~nf_neu%%~xf"  

      ) else (

        echo %~1:%2>>"%%~nf_neu%%~xf"  

      )
    )
  )
)
goto:eof


:writeit
if %firstline% equ 1 (
  set "line=%~1:"  
  set firstline=0
  goto:eof
)
if %firstline% equ 0 (
  echo %line=% %~1>>%2
  set "line="  
  set firstline=1
  goto:eof
) 
goto:eof