132749
Goto Top

Per Batch eine vorhandene TXT aktualisieren

Moin,
wie kann man eine vorhandene TXT (COUNTRY) per Batch aktualisieren?

1. COUNTRY.txt (ist bereits vorhanden)

DATUM: 01.01.2017

Denmark\da1\prs500.exe
Denmark\da2\prs400.exe
Denmark\da3\prs400.exe
Denmark\da4\prs500.exe
Poland\da1\prs200.exe
Poland\da2\prs300.exe
Poland\da3\prs300.exe
Poland\da4\prs200.exe


2. NEW.txt (wurde erstellt und soll an COUNTRY übergeben werden!)

DATUM: 01.03.2017

Denmark\da2\prs401.exe
Denmark\da3\prs401.exe
Denmark\da4\prs501.exe
Poland\da1\prs201.exe
Poland\da2\prs301.exe
Poland\da3\prs301.exe

Finland\da3\prs700.exe
Finland\da4\prs600.exe


3. COUNTRY.txt (nach Aktualisierung soll es so aussehen)

DATUM: 01.03.2017

Denmark\da2\prs401.exe
Denmark\da3\prs401.exe
Denmark\da4\prs501.exe
Finland\da3\prs700.exe
Finland\da4\prs600.exe
Poland\da1\prs201.exe
Poland\da2\prs301.exe
Poland\da3\prs301.exe


DATUM: 01.01.2017

Denmark\da1\prs500.exe
Poland\da4\prs200.exe


Wie müsste die Batch jetzt aussehen?
Leider sind meine Kenntnisse nicht ausreichend um das alleine zu realisieren!

Achja, sollte bei einer weiteren Aktualisierung die letzten beiden Länder aktualisiert werden dann soll das dazugehörige Datum entfernt werden!

Content-Key: 333942

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

Printed on: April 24, 2024 at 10:04 o'clock

Mitglied: 132692
132692 Apr 02, 2017 updated at 14:48:53 (UTC)
Goto Top
Sollte man besser gleich zur Powershell greifen:
$country = 'C:\country.txt'  
$new = 'C:\new.txt'  
((gc $country) + (gc $new)) | ?{$_ -match '\\'} | group {$_.Substring(0,$_.Length - $_.LastIndexOf('\'))} | %{$_.Group[-1]} | sc 'C:\country.txt'  
Gruß p.
Mitglied: 132749
132749 Apr 02, 2017 at 16:35:48 (UTC)
Goto Top
Hmm,
als Ergenis erhalte ich eine LEERE country.txt!
Mitglied: 132692
132692 Apr 02, 2017 updated at 17:02:06 (UTC)
Goto Top
Nö wurde hier getestet, dann hast du es nicht richtig angewendet oder du hast uns hier Details deiner Datei verschwiegen.
Bitte solchen Dateiinhalt immer in Codetags posten, das ist wichtiger denn je!!
Ich gehe davon aus das alles vom Zeilenanfang bis zum letzten Backslash verglichen werden soll ...
Mitglied: 132749
132749 Apr 02, 2017, updated at Apr 03, 2017 at 19:07:45 (UTC)
Goto Top
Bei mir sieht es angepasst so aus:

$country = 'C:\myProgramm\country.txt'  
$new = 'C:\myProgramm\new.txt'  
((gc $country) + (gc $new)) | ?{$_ -match '\\'} | group {$_.Substring(0,$_.Length - $_.LastIndexOf('\'))} | %{$_.Group[-1]} | sc 'C:\myProgramm\country.txt'  


Hinweis:
Auch wenn ich die country.txt in country1.txt ändere bleibt diese leider LEER und somit vermute ich mal, dass der Fehler vor dem erstellen der txt (?{$_ -match '\\'} | group {$_.Substring(0,$_.Length - $_.LastIndexOf('\'))} | %{$_.Group[-1]} |) liegen muss!