
132749
08.04.2017, aktualisiert am 11.04.2017
Vorhandene TXT per Batch aktualisieren
Moin zusammen,
ich benötige Eure Hilfe um den Inhalt einer vorhandenen TXT per Batch zu aktualisieren!
So sieht meine "my.txt" derzeitig aus:
07.04.2017
Australia\DA1=031
Austria\DA1=162
Austria\DA2=162
Austria\DA3=162
Austria\DA4=162
DATUM: 28.03.2017
Australia\DA1=030
Australia\DA3=034
Australia\DA4=036
Austria\DA1=161
Austria\DA2=161
Austria\DA3=161
Austria\DA4=161
Canada\DA1=125
Canada\DA4=125
So soll meine "my.txt" aussehen wenn sie aktualisiert wurde:
07.04.2017
Australia\DA1=031
Austria\DA1=162
Austria\DA2=162
Austria\DA3=162
Austria\DA4=162
DATUM: 28.03.2017
Australia\DA3=034
Australia\DA4=036
Canada\DA1=125
Canada\DA4=125
Hinweis: new.txt (07.04.17) + old.txt (28.03.2017) = my.txt
Ich bedanke mich für Eure Hilfe im Voraus
Gruß
kampen
ich benötige Eure Hilfe um den Inhalt einer vorhandenen TXT per Batch zu aktualisieren!
So sieht meine "my.txt" derzeitig aus:
07.04.2017
Australia\DA1=031
Austria\DA1=162
Austria\DA2=162
Austria\DA3=162
Austria\DA4=162
DATUM: 28.03.2017
Australia\DA1=030
Australia\DA3=034
Australia\DA4=036
Austria\DA1=161
Austria\DA2=161
Austria\DA3=161
Austria\DA4=161
Canada\DA1=125
Canada\DA4=125
So soll meine "my.txt" aussehen wenn sie aktualisiert wurde:
07.04.2017
Australia\DA1=031
Austria\DA1=162
Austria\DA2=162
Austria\DA3=162
Austria\DA4=162
DATUM: 28.03.2017
Australia\DA3=034
Australia\DA4=036
Canada\DA1=125
Canada\DA4=125
Hinweis: new.txt (07.04.17) + old.txt (28.03.2017) = my.txt
copy /b "new.txt"+"old.txt" "my.txt"
Ich bedanke mich für Eure Hilfe im Voraus
Gruß
kampen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 334542
Url: https://administrator.de/forum/vorhandene-txt-per-batch-aktualisieren-334542.html
Ausgedruckt am: 23.04.2025 um 17:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo kampen,
Du hast diese Frage hier bereits schon einmal gestellt und hast keine für Dich hilfreiche Lösung bekommen. Evtl. liegt das daran, dass kein Mensch erraten kann/möchte, nach welchen Regeln entschieden werden soll, was unter welchen Bedingungen aus der
Grüße
Friemler
Du hast diese Frage hier bereits schon einmal gestellt und hast keine für Dich hilfreiche Lösung bekommen. Evtl. liegt das daran, dass kein Mensch erraten kann/möchte, nach welchen Regeln entschieden werden soll, was unter welchen Bedingungen aus der
old.txt
entfernt wird. Gib dazu mal genauere Infos raus, dann kann man Dir vielleicht auch helfen.Grüße
Friemler

@echo off
::-------------
set "file=C:\ordner\my.txt"
::-------------
set "filenew=%temp%\my_neu.txt"
set "tmpfile=%temp%\dict.txt"
del "%tmpfile%" >nul 2>&1
del "%filenew%" >nul 2>&1
>"%filenew%" (for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" "%file%"') do (
echo(%%b|find "=" >nul && (
for /f "tokens=1 delims==" %%c in ("%%b") do (
find "%%c" "%tmpfile%" >nul 2>&1 || (
echo(%%b
echo(%%c>>"%tmpfile%"
)
)
) || (echo(%%b)
))
move "%filenew%" "%file%"

Da fragt man sich wirklich welche Idioten sich solche Speicherkonzepte ausdenken nur damit dann andere ohne Erfahrung daran weiter basteln... Armes Deutschland kann man da nur sagen
. Statt das man eine Datenbank hernimmt oder ein Aktualisierungsalgrithmus mit Regex hernimmt wird so ein Müll produziert, da stellen sich einem die Nackenhaare.
Batch ist für sowas viel zu umständlich, nimm Powershell oder VBS, das ist ja jetzt schon lahm ohne Ende.
Batch ist für sowas viel zu umständlich, nimm Powershell oder VBS, das ist ja jetzt schon lahm ohne Ende.
$file = 'D:\new.txt'
$dic = @()
[regex]::matches((gc $file -raw),'(?ism)^((DATUM:\s*)?\d{2}\.\d{2}\.\d{4})(.*?)(?=^DATUM|\z)').Captures | %{
$subcount = 0
$subvalues = @(); $subvalues += "`r`n" + $_.Groups[1].Value + "`r`n"
$_.Groups[3].Value -split [Environment]::NewLine | ?{$_.trim() -ne ""} | %{
if ($_ -match '='){
$part = $_.Split('=')
if ($part -notin $dic){
$dic += $part
$subcount++
$subvalues += $_
}
}
}
if ($subcount){$subvalues}
} | sc 'D:\new.txt'

Du darfst das nicht in die Powershell pasten !! Das gehört in ein Skript! Geht hier einwandfrei!
Mehr Support => Angebot: PN
Mehr Support => Angebot: PN