Jump to content
okniloso

Batch – bestimmte Werte löschen

Recommended Posts

Hallo zusammen,
ich habe 3 Textdateien.

Buchstaben.txt = Inhalt ist A B C D E
Zahlen.txt = Inhalt ist 1 2 3 4
Ergebnis.txt = A 1

Gibt es eine Möglichkeit eine Batch-Datei zu erstellen, die in Ergebnis.txt reinschaut und den Wert A aus der Buchstaben.txt und den Wert 1 aus der Zahlen.txt löscht?

Wenn ich in Ergebnis.txt den Wert B 4 stehen habe, soll die Batch aus der Buchstaben.txt das B löschen und aus der Zahlen.txt die 4 .

Habt ihr eine Idee?

Danke euch.

Share this post


Link to post
Share on other sites

Nein.

Diesmal nicht. ;-)

 

Ich strebe diesen Lösungsansatz mit .bat an.

 

Ist das möglich.

Das Antwort von dem genannten Thread klappt nicht so, wie ich es  mir vorstelle.

 

Ehrlich: KEINE SCHULAUFGABE.

 

Viele Grüße

 

Share this post


Link to post
Share on other sites

Moin,

 

wenn man es wirklich will, kriegt man das sicher auch per Batch hin. Da die "Sprache" aber eigentlich keine ist und auch für sowas nie entworfen wurde, wird das aber sehr umständlich. Die PowerShell hingegen ist ausdrücklich auch für komplexere Aufgaben gemacht und hat ein gutes Handling von Variablen, Schleifen, Strings usw.

 

Auf jeden Fall müsstest du für dich erst mal die Logik genauer definieren. Unter welchen exakten Umständen soll exakt was passieren? Mit so einer Definition ist man dann oft schon nah an der Lösung.

 

Gruß, Nils

 

Edited by NilsK

Share this post


Link to post
Share on other sites
vor 17 Minuten schrieb okniloso:

Ich strebe diesen Lösungsansatz mit .bat an.

Warum?

vor 17 Minuten schrieb okniloso:

Das Antwort von dem genannten Thread klappt nicht so, wie ich es  mir vorstelle.

Welche Aufgabe willst Du denn wirklich damit lösen?

 

Ich gehe davon aus, dass Du das bereits weißt, aber ich wiederhole es einfach zur Sicherheit nochmal: .bat/.cmd/batch ist ziemlich obsolet und wurde schon vor 'ner ganzen Weile durch die viel mächtigere Powershell ersetzt - besonders wenn es um komplexere Aufgaben geht. Es gibt quasi nix, was Du mit .bat/.cmd/batch machen konntest, was Du nicht genauso oder einfacher und besser mit Powershell machen kannst. Wenn Du vorhast, noch eine Weile in "Windows-Umgebungen unterwegs zu sein", empfehle ich Dir dringend, Dich mit Powershell zu beschäftigen. Das wird Dir das Leben erleichtern und ich bin mir sicher, dass es sich für Dich auszahlen wird.

Share this post


Link to post
Share on other sites

ok. dann mache ich mich mehr mit der Powershell schlauer.

 

Geht denn du Umsetzung, wenn ich mich trotzdem mit der Powershell und den .txt bedine?

Heißt: Ausführung durch Powershell und Werte in der txt

 

Im genannten Link, wird alles in der Powershell gemacht und keine TXT Dateien genommen.

 

Habt ihr noch einen Tipp.

 

Danke euch

Share this post


Link to post
Share on other sites

Batch ist eine Stapeldatei, sie enthält i.d.R. einen oder mehrere Befehle des Komandointerpretes CMD. Diese Befehle und deren Möglichkeit muss man kennen und beherrschen und auch die Beschränkungen. Prinzipiell gibt es einige Möglichkeiten einer einfachen Textbearbeitung, aber keine der wirklich direkten Dateibearbeitung.

 

 

Edited by lefg

Share this post


Link to post
Share on other sites
vor 12 Minuten schrieb okniloso:

Habt ihr noch einen Tipp.

Nimm eine CSV und trenne die Werte in der Datei z.B. mit ";". Dann kannst du aus dem Script im anderen Thread die Variabeln aus der ersten und zweiten Zeile mit Import-CSV einlesen. Bei "$zahlinput = $zahltemp" bzw. "$buchstbeinput = $buchstbetemp" schreibst du dann mit Export-CSV zurück. Allerdings müsstest du dann die äußere Schleife anders beenden.

Share this post


Link to post
Share on other sites
vor 36 Minuten schrieb okniloso:

ok. dann mache ich mich mehr mit der Powershell schlauer.

Brav!  ;-):D 

Zitat

Geht denn du Umsetzung, wenn ich mich trotzdem mit der Powershell und den .txt bedine?

Heißt: Ausführung durch Powershell und Werte in der txt

Definitiv.

 

Hier ... nur zum Angeben .... ;-):D

Get-Content -Path .\Ergebnis.txt -OutVariable Ergebnis
Get-Content -Path .\Buchstaben.txt -OutVariable Buchstaben
Get-Content -Path .\Zahlen.txt -OutVariable Zahlen
"$Ergebnis" -match '(\w)\s+(\d)'
$Buchstaben -replace $Matches[1] | Set-Content -Path .\Buchstaben.txt -Force
$Zahlen -replace $Matches[2] | Set-Content -Path .\Zahlen.txt -Force

... mehr ist für den Anfang nicht nötig ...

Edited by BOfH_666

Share this post


Link to post
Share on other sites
vor 1 Stunde schrieb BOfH_666:

Brav!  ;-):D 

Definitiv.

 

Hier ... nur zum Angeben .... ;-):D


Get-Content -Path .\Ergebnis.txt -OutVariable Ergebnis
Get-Content -Path .\Buchstaben.txt -OutVariable Buchstaben
Get-Content -Path .\Zahlen.txt -OutVariable Zahlen
"$Ergebnis" -match '(\w)\s+(\d)'
$Buchstaben -replace $Matches[1] | Set-Content -Path .\Buchstaben.txt -Force
$Zahlen -replace $Matches[2] | Set-Content -Path .\Zahlen.txt -Force

... mehr ist für den Anfang nicht nötig ...

Vielen Dank. Ich habe mal ein Screen angehängt. Leider bekomme ich einen Fehler (siehe Screen). Der Wert a aus der Ergebnis.txt steht immer noch in der Buchstaben.txt

Screen.png

vor 3 Minuten schrieb okniloso:

Vielen Dank. Ich habe mal ein Screen angehängt. Leider bekomme ich einen Fehler (siehe Screen). Der Wert a aus der Ergebnis.txt steht immer noch in der Buchstaben.txt

Screen.png

Mein FEHLER sorry. Hat alles geklappt. 1000 Dank.

Share this post


Link to post
Share on other sites
vor 36 Minuten schrieb okniloso:

Mein FEHLER sorry. Hat alles geklappt. 1000 Dank.

Dann lösch doch einfach die Screenshots - die helfen dann im Zweifel auch jemand anderem nicht weiter, wenn mal jemand das Gleiche oder was Ähnliches sucht.

 

An diesem kleinen Fehler ist aber schon zu sehen, dass diese Lösung alles andere als robust und fehlertolerant ist. Du solltest also peinlich genau darauf achten, dass alle nötigen Voraussetzungen erfüllt sind oder entsprechend eine gute Fehlerbehandlung einbauen - ganz besonders, wenn Du nicht der Einzige bist, der mit diesem Code arbeiten soll.

Share this post


Link to post
Share on other sites
vor 15 Minuten schrieb BOfH_666:

Dann lösch doch einfach die Screenshots - die helfen dann im Zweifel auch jemand anderem nicht weiter, wenn mal jemand das Gleiche oder was Ähnliches sucht.

 

An diesem kleinen Fehler ist aber schon zu sehen, dass diese Lösung alles andere als robust und fehlertolerant ist. Du solltest also peinlich genau darauf achten, dass alle nötigen Voraussetzungen erfüllt sind oder entsprechend eine gute Fehlerbehandlung einbauen - ganz besonders, wenn Du nicht der Einzige bist, der mit diesem Code arbeiten soll.

Alles klar danke. Sag mal, geht das auch mit Worten? WEIL: Wenn ich z.B. rot, gruen, lila, schwarz in der buchstaben.txt und im Ergebnis.txt wird zwar in der zahlen bat der wert 3 rausgenommen in der Buchstaben.bat aber vom schwarz nur das T. Gibt es die Möglichkeit egal wie lang die Zeile ist, den gesamten Wert der Zeile zu löschen?

Screen.png

Share this post


Link to post
Share on other sites

Moin,

 

Vorschlag:

 

Entweder du definierst mal, was du eigentlich vorhast. Dann kann man dir passende Vorschläge machen.

Oder (vermutlich viel besser): Du nimmst dir Zeit, dich mit Grundlagen zu befassen und in Ruhe Dinge zu probieren. Dann meldest du dich, wenn du konkrete, beschreibbare Probleme hast.

 

Ein Board wie dieses eignet sich nicht als Lern-Chat.

 

Gruß. Nils

 

  • Like 1

Share this post


Link to post
Share on other sites
vor 9 Minuten schrieb okniloso:

... Sag mal, geht das auch mit Worten? ....

Das hängt von Deinen Fähigkeiten ab ... aber prinzipiell ja - klar!!!!  ;-):D   ... Ich kann also Nils nur zustimmen. Nimm Dir ein bissl Zeit und schaff Dir die Grundlagen von Powershell drauf. Ein guter Startpunkt könnte die Microsoft Virtual Academy sein. Dort der kostenlose Kurs Getting Started with Microsoft Powershell. Keine Angst, dort geht es zwar um Powershell 3.0 aber die Grundlagen passen auch sehr gut für die aktuelle Windows Version 5.1.

Viel Spaß

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...