wolf56
Goto Top

Inhalt Textdatei-a zu Textatei-b per batch in ein bestimmtes Format

Hallo,
Zwei Programme arbeiten jeweils mit Infos aus Textdateien, jedoch mit unterschiedlichen Formatierungen.
Programm a speichert als Beispiel wie folgt in a.txt:
C:\Users\Vater\Desktop\Test\T 001 - W. D. Rohr - Nrdem - SF.pdf
C:\Users\Vater\Desktop\Test\T 002 - B. W. Aldiss - FoE - SF.pdf
C:\Users\Vater\Desktop\Test\T 003 - J. T. McIntosh - DWz - SF.pdf
Programm b benötigt zum richtigen zuordnen aber Infos aus b.txt in folgendem Format:
"C:\Users\Vater\Desktop\Test\T 001 - W. D. Rohr - Nrdem - SF.pdf" "Nrdem" "W. D. Rohr" "T 001" "SF"
"C:\Users\Vater\Desktop\Test\T 002 - B. W. Aldiss - FoE - SF.pdf" "FoE" "B. W. Aldiss" "T 002" "SF"
"C:\Users\Vater\Desktop\Test\T 003 - J. T. McIntosh - DWz - SF.pdf" "DWz" "J. T. McIntosh" "T 003" "SF"
Wobei noch zwischen den leeren Anführungszeichen ein Tab-sprung ist.

Wie könnte ich das Problem mit einfachen Mitteln lösen?
Mir schwebt vor, per batch den Inhalt zu konvertieren, da es sich meistens um hunderte von Zeilen handelt.
Für Vorschläge und Hilfe wäre ich dankbar.
Da ich aber nicht wirklich Experte in batch-schreiben bin, wäre ich für Beispiele dankbar.

Gruß

wolf56

Content-Key: 222089

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

Printed on: April 18, 2024 at 11:04 o'clock

Member: bastla
bastla Nov 15, 2013 at 14:44:40 (UTC)
Goto Top
Hallo wolf56 und willkommen im Forum!

Als Batch könnte das etwa so gehen:
@echo off & setlocal
set "Ein=D:\a.txt"  
set "Aus=:D\b.txt"  

del "%Aus%" 2>nul  
for /f "usebackq delims=" %%i in ("%Ein%") do (  
    for /f "tokens=1-4 delims=-" %%a in ("%%~ni") do (  
        set "A=%%a" & set "B=%%b" & set "C=%%c" & set "D=%%d"  
        call :ProcessLine "%%i"  
    )
)
goto :eof

:ProcessLine
set "A=%A:~,-1%"  
set "B=%B:~1,-1%"  
set "C=%C:~1,-1%"  
set "D=%D:~1%"  
>>"%Aus%" echo %1	"%C%"	"%B%"	"%A%"	"%D%"  
goto :eof
Grüße
bastla
Member: wolf56
wolf56 Nov 17, 2013 at 18:52:09 (UTC)
Goto Top
Hallo bastla,
Danke erst mal für die schnelle Antwort und Beispiel.
Funktioniert einwandfrei wie von mir gewünscht, aber offenbar will das Programm b nicht so wie gewünscht die Datei-b akzeptieren.
Nun ja, soll eben nicht sein.
Das Problem was ich eigentlich habe ist folgendes:
Habe ein paar Hundert PDF-Files.
Aber es gibt zur Zeit kein Programm, mit welchem man aus Dateinamen, die Metadaten(4Tags) in PDF-Files schreiben kann, und gleich gar nicht für mehrere Dateien eines Ordners. Ich lese sehr gern, aber Die PDF-Files haben alle irgendwelche kryptische oder fehlerhafte Tag-Einträge, sodass beim suchen auf einem ebook-reader nur Mist raus kommt. Jedes File einzeln zu bearbeiten würde ja gehen, aber ist eben eine mühselige Arbeit.
Vieleich kann mir ja jemand einen Tip geben, wie ich das Problem lösen kann.

Danke
und Gruß
wolf56