Batch zum vergleichen 2er Textdateien und ändern der Ziel Textdatei etwa wie suchen und ersetzen
Ich weiss, das ich KEIN Crack auf dem Gebiet batch bin und haben ein unlösbares Problem zu bewältigen.
Vielleicht kann mir jemand helfen.
Ich habe 2 Verzechnisse, welche zum import von Dateien genutzt werden soll.
Die abgelegten dteien sind PDF und DWG.
das Problem ist, das die Dateien mit Revisionskennung kommen, welche als Information benötigt wird, aber nicht in der Importdatei vorhanden ist.
beispiel Datei:
Eintrag in Excel-liste 096008-263202.dwg
vorhandene Datei 096008-263202R01.dwg
Nun gehe ich hin und Schreibe eine Textdatei, welche die Dateinamen hält und benenne die Dateien um, damit sie gefunden werden.
Folgende Probleme habe ich:
1. Wenn eine Datei kein R enthält, wird noch einmal die Endung angefügt.
Ich hatte versucht, die Dateien ohne R vorher mit dir -*R*.* zu verschieben, hier findet das Batch keine Dateien.
2. Die Datei Rev. TXT hält die Revisionsinformationen, welche aber für den Import am besten in eine Excel Datei ohne R gesucht wird und in die nächste Zeile eingefügt wird.
Dies geht aber nur ohne manuellen Eingriff, da der Import periodisch laufen soll. Im Ernstfall sollte es auch mit einer Textdatei gehen. Auch hier muss ein text in datei a gesucht werden und Tab oder Semikolon getrennt in die Datei eingefügt werden und zwar ohne Verzeichnisname, welcher immer fest ist (c:\import1\....)
Beispiel Datensatz
Dies ist der gesuchte String
07 1175 110 001 0 07-1175-HAD-ZD-140 096008-231200 Beispieltext
Beispieltext: c:\import\096008-263202.dwg
*
@echo off
:IF
IF NOT EXIST "C:\Konvertiert\REV.txt" goto los
goto import
:los
IF EXIST c:\import\*.dwg goto list
IF EXIST c:\import\*.pdf goto list
goto warte
:warte
@echo Keine Dateien zur Verarbeitung vorhanden
@Ping 192.168.0.251 -n 20 > nul
goto los
:Import
@echo Importvorgang noch nicht abgeschlossen.
@Ping 192.168.0.251 -n 20 > nul
goto IF
:list
call c:\konvertiert\listnamemove.cmd
goto IF
*
listnamemove.cmd
*
@echo off
dir c:\import\*.dwg /s /b > c:\Konvertiert\REV.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\REV.txt
cd c:\import
for %%f in (*.dwg;*.pdf) do @for /f "delims=R" %%n in ('echo %%~f') do move /y "%%~f" "%%n%%~xf"
dir c:\import\*.dwg /s /b > c:\Konvertiert\Dateien.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\Dateien.txt
cd c:\Konvertiert\
for /F "delims=," %%i in (dateien.txt) do move %%i c:\Konvertiert
@echo VERARBEITUNG ABGESCHLOSSEN !
Vielleicht kann mir jemand helfen.
Ich habe 2 Verzechnisse, welche zum import von Dateien genutzt werden soll.
Die abgelegten dteien sind PDF und DWG.
das Problem ist, das die Dateien mit Revisionskennung kommen, welche als Information benötigt wird, aber nicht in der Importdatei vorhanden ist.
beispiel Datei:
Eintrag in Excel-liste 096008-263202.dwg
vorhandene Datei 096008-263202R01.dwg
Nun gehe ich hin und Schreibe eine Textdatei, welche die Dateinamen hält und benenne die Dateien um, damit sie gefunden werden.
Folgende Probleme habe ich:
1. Wenn eine Datei kein R enthält, wird noch einmal die Endung angefügt.
Ich hatte versucht, die Dateien ohne R vorher mit dir -*R*.* zu verschieben, hier findet das Batch keine Dateien.
2. Die Datei Rev. TXT hält die Revisionsinformationen, welche aber für den Import am besten in eine Excel Datei ohne R gesucht wird und in die nächste Zeile eingefügt wird.
Dies geht aber nur ohne manuellen Eingriff, da der Import periodisch laufen soll. Im Ernstfall sollte es auch mit einer Textdatei gehen. Auch hier muss ein text in datei a gesucht werden und Tab oder Semikolon getrennt in die Datei eingefügt werden und zwar ohne Verzeichnisname, welcher immer fest ist (c:\import1\....)
Beispiel Datensatz
Dies ist der gesuchte String
07 1175 110 001 0 07-1175-HAD-ZD-140 096008-231200 Beispieltext
Beispieltext: c:\import\096008-263202.dwg
*
@echo off
:IF
IF NOT EXIST "C:\Konvertiert\REV.txt" goto los
goto import
:los
IF EXIST c:\import\*.dwg goto list
IF EXIST c:\import\*.pdf goto list
goto warte
:warte
@echo Keine Dateien zur Verarbeitung vorhanden
@Ping 192.168.0.251 -n 20 > nul
goto los
:Import
@echo Importvorgang noch nicht abgeschlossen.
@Ping 192.168.0.251 -n 20 > nul
goto IF
:list
call c:\konvertiert\listnamemove.cmd
goto IF
*
listnamemove.cmd
*
@echo off
dir c:\import\*.dwg /s /b > c:\Konvertiert\REV.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\REV.txt
cd c:\import
for %%f in (*.dwg;*.pdf) do @for /f "delims=R" %%n in ('echo %%~f') do move /y "%%~f" "%%n%%~xf"
dir c:\import\*.dwg /s /b > c:\Konvertiert\Dateien.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\Dateien.txt
cd c:\Konvertiert\
for /F "delims=," %%i in (dateien.txt) do move %%i c:\Konvertiert
@echo VERARBEITUNG ABGESCHLOSSEN !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 100007
Url: https://administrator.de/forum/batch-zum-vergleichen-2er-textdateien-und-aendern-der-ziel-textdatei-etwa-wie-suchen-und-ersetzen-100007.html
Ausgedruckt am: 22.05.2025 um 13:05 Uhr
4 Kommentare
Neuester Kommentar