Wie kann man mit Batch aus einer Textdatei ein Wort suchen und ein 2. Wort, was in der gleichen Zeile in Anführungszeichen steht, als Variable definieren?

Ich habe eine Textdatei (config.txt) mit folgenden Inhalt:

alpha = "Das ist der 1. Wert"
beta = "Das ist der 2. Wert"
gamma = "Das ist der 3. Wert"

Nun möchte ich mit meiner Batch-Datei (search.bat) nach dem Wort beta suchen, anschließend den Wert in den Anführungszeichen als Variable output speichern und am Ende mit echo %output% in der Batch-Datei ausgeben.

Wichtig anzumerken ist, dass das die Variable output (und damit auch die Ausgabe) ohne Anführungszeichen ist. Der Wert output entspricht demnach:

Das ist der 2. Wert

In der Batch-Datei sollen dabei folgende Bedingungen erfüllt werden:

1)

  • Das zu suchende Wort soll mit der Variable target beschrieben werden.
  • Außerdem soll der Pfad der Textdatei mit der Variable path beschrieben werden.

Am besten definiert man das ganz am Anfang.

set target=beta
set path="C:\Users\Timo\Documents\Wort-Suche mit BAT\config.txt"

2) Der Suchvorgang soll auch einwandfrei funktionieren...

  • ... wenn in der Textdatei keine Leerzeichen um das Gleichheitszeichen sind.
  • ... wenn in der Textdatei ganz viele Leerzeichen um das Gleichheitszeichen sind.
  • ... wenn ganz am Anfang der Zeile ein oder mehrere Leerzeichen sind.

Außerdem

Beispiel:

alpha="Das ist der 1. Wert"
beta   =   "Das ist der 2. Wert"
   gamma = "Das ist der 3. Wert"

Somit soll der Suchvorgang die Leerzeichen, die um das Gleichheitszeichen und vor den Variablen-Namen sind, komplett ignorieren.

Er soll sich nur anhand des Suchworts (beta) und den Anführungszeichen orientieren.

Ich habe mehrere Stunden versucht mein Problem selbständig zu lösen. Einige Forumsbeiträge schienen mir interessant, aber ich bin trotzdem zu keinem Ergebnis gekommen.

Hier sind die Links zu den beiden Beiträgen, die vermutlich bei der Lösung helfen.

Hallo, wie kann ich aus einer Textdatei über batch ein Wort suchen lassen und ein anderes was in der gleichen Zeile in Klammern steht ausgeben lassen ?

Wie verwende ich ein "(Anführungszeichen) als FOR / F-Trennzeichen in CMD.exe unter Windows 7?

Vielen Dank für eure Hilfe

Timo

Computer, Technik, programmieren, Batch, cmd, Technologie, Windows 10
Warum sind viele DLLs, die Windows zur Verfügung stellt, Bibliotheken, die nur von C / C++ gelesen werden können?

Ich probiere gerade alles mit statischen / dynamischen Bibliotheken zu verstehen (wir haben das in der Vorlesung nur kurz überflogen) und frage mich jetzt, warum die DLL-Dateien, die man auf Windows findet, überwiegend für C / C++ geschrieben sind.

Den Sinn hinter DLLs habe ich kapiert. Das sind im Prinzip Programmteile, auf die viele verschiedene Programme zugreifen können. Anstatt dass jedes Programm immer wieder seine Bibliotheken selbst mitbringt und dann lädt, kann man darüber eine Bibliothek von Windows aus laden und im Programm strenggenommen nur einen Pointer verwenden, um auf Funktionen der Fall zuzugreifen. Das spart dann eine Menge Speicherplatz.

Jedoch verstehe ich nicht so ganz, warum all diese Bibliotheken C- / C++-DLLs sind, die also ohne weiteres nur von diesen zwei Sprachen benutzt werden können. Ich habe jetzt schon viel gelesen, wo Leute z.B. in Java oder Python einige Windows-Bibliotheken (wie z.B. zipfldr.dll, was die Anweisung enthält, wie man in ZIP-Pakete, ohne sie zu entpacken, hineinschauen kann) nutzen wollten und das aber nur über Umwege funktioniert hat (wo im Übrigen auch C- / C++-Code benutzt werden musste).

Warum ist das so?

Ist das nicht ziemlich unpraktisch? Ich meine, dann müssten doch quasi alle Programme, die nicht in C oder C++ geschrieben wurden, entweder immer ihre eigenen DLLs beim Download mitbringen, was sehr speicherintensiv wäre oder man müsste, wenn man eine Windows-DLL z.B. in Java nutzen möchte, für jede Funktion, die man aus dieser nutzen wollte, sich in C eine Konvertierungsmöglichkeit zusammenbasteln. Und C / C++ wird zwar für viel Anwendungsprogrammierung verwendet, aber andere Sprachen sind doch weiter verbreitet, oder?

Ich hätte nur ein paar Ideen, warum das so ist:

  1. Windows wurde selbst zu großen Teilen in C(++) programmiert und bringt die DLL-Dateien nur mit, weil es die selber braucht.
  2. C(++) ist die bekanntere Sprache, die sehr hardwarenah noch vor Assembler funktioniert.
  3. C(++) wird mit Abstand am meisten für Anwendungsprogrammierung verwendet und die meisten Programme die man installiert sind somit in C(++) erstellt worden. Python z.B. nutzt man ja eher für Dinge wie KI oder Data Science, weil Python nicht so schnell ist.

Aber was ist der richtige Grund? Und gäbe es nicht eine Möglichkeit, dass alle Programme irgendwie auf die System-DLLs von Windows zugreifen könnten?

Computer, Technik, programmieren, Informatik, Technologie
Kennt einer von euch ein technisches Studienfach,welches AUCH für fleißige Mädels geeignet sein könnte,die nicht zu den hellsten Kerzen auf der Torte zählen,..?

… bzw. nur einen (Gesamt-) „IQ“ von 85 beispielsweise besitzen, jedoch eine längst abgeschlossene schulische Ausbildung aus einem eher technischen Bereich mit einem zusätzlichen vollen Abitur in der Tasche haben. Dieses Vollabi wurde jedoch angenommen aufgrund einer katastrophalen Erfahrung mit „Begabungsanalysen“ (bei EINER ganz bestimmten Studien- und Berufsberaterin) und der daraus entstandenen deutlich verschlechterten Arbeitshaltung sowie einer extrem unregelmäßigen Erledigung von Hausübungen mit einem eher schlechten 3er-Abi-Schnitt (2,9) leider erzielt… 🌩 🚫

Also… nochmal: 1.) Welches von „den“ technischen bzw. ingenieurwissenschaftlichen Studiengängen (Elektrotechnik, Bauingenieurwesen usw. usw.) würdet ihr einer vom rein Kognitiven her eher „dummen“ oder zumindest einer etwas weniger intelligenten Person am ehesten zutrauen? 2.) Und glaubt ihr außerdem, dass das Fach Elektrotechnik für einen „solchen“ Menschen einigermaßen machbar wäre, sobald dieser sich z.B. um ein Bestehen von Prüfungen generell extrem bemüht sowie ein mehr oder weniger großes Interesse für diesen Beruf entwickelt?

Computer, Arbeit, Beruf, Wissen, Lernen, Studium, Schule, Mathematik, Technik, Elektronik, IT, Menschen, programmieren, Noten, Berufswahl, Frauen, Talent, Gehirn, Kommunikation, Elektrotechnik, Wissenschaft, Intelligenz, Erfolg, Abitur, Bauingenieur, Bauingenieurwesen, Begabung, Fleiss, Informatik, Ingenieur, Ingenieurwesen, IQ, Logisches Denken, Schaltung, Theorie, Verständnis, Wille, Ziele, Fähigkeiten, Muehe, Ausbildung und Studium, Beruf und Büro
Könnt ihr mir beim Programmieren eines Vokabeltrainers helfen?

Hallo!

Ich bin gerade an dem Programmieren eines Vokabeltrainers über BlueJ. Die Eingabe der deutschen und englischen Vokabeln, die abgefragt werden sollen, funktioniert schon ganz gut.

Leider habe ich ein Problem: Und zwar weiß ich nicht, wie ich die Vokabeln abgefragt bekomme. Bei

current = voks.getContent();

startet die Abfrage. Ab hier habe ich gar keine Ahnung, was ich noch schreiben soll. Kann mir jemand helfen?

import java.util.*;

public class Trainer {
  String d;
  String e;
  Vokabel current;

  public void main() {
    List<Vokabel> voks = new List();
    char antwort;
    Scanner s = new Scanner(System.in);
    int z = 0;
    voks.toFirst();
    antwort  = 'y';

    while (antwort == 'y') {
      z++;
      System.out.print('\u000C');
      System.out.println("Geben Sie bitte Ihre " + z + ". Vokabel auf Deutsch ein!");
      d = s.next();
      System.out.println("Geben Sie nun die entsprechende Übersetzung auf English an.");
      e = s.next();
      Vokabel v = new Vokabel(d, e);
      voks.append(v);
      voks.next();
      System.out.println("Falls Sie keine weitere Vokabel eingeben wollen, drücken Sie 'n' für Nein, falls doch dann 'y' für Ja.");
      antwort = s.next().charAt(0);
    }

    voks.toFirst();

    while (voks.hasAccess()) {
      current = voks.getContent();
      System.out.print(current.getEVok() + " ");
      System.out.println("Geben Sie die deutsche Bedeutung ein.");
      voks.next();
      current = voks.getContent();
      System.out.print(current.getEVok() + "    ");
      System.out.println(current.getDVok());
      voks.next();
    }
  }
}
Computer, Schule, programmieren, Java
wie läuft Programmcode ab? Reinfolge?

Allllllso ich verstehe nicht wie code abläuft. Normalerweise läuft der Code von oben nach unten ab. Ja aberrrrr Beispsiel:

In einem Spiel hat man Blöcke. Ein Quadrat mit 10 Blöcken ist vor mir.

Wichtig: Von jedem dieser 10 Blöcke geht ein Befehl aus. Also mein Programm sagt das alles Code was ich hier rein tue, von jedem dieser Blöcke aus geht:

//ich setzte Variable "start" auf 1

Wenn "start" auf 1 dann

setzte "BlockNummer" auf (get "Blocknummer" + 1)

//"Blocknummer" sollte doch jetzt auf 10 sein weil ich 10 Blöcke habe.

Wenn "BlockNummer" kleiner oder gleich ist als "5"

ersetzte dich selber mit Block "Erde"

Ungefähr so ist mein Code

Er ersetzt jetzt 5 Blöcke. 5 Blöcke sind jetzt Erde und die anderen 5 haben sich nicht geändert.

Macht für mich keinen Sinn. Sollte "Blocknummer" nicht auf 10 sein? Also sollte eigentlich Garnichts passieren.

Und wenn ich das hier mache:

//ich setzte Variable "start" auf 1

Wenn "start" auf 1 dann

setzte "start" auf 0 (<-- Neu)

ersetzte dich selber mit Block "Erde"

Jetzt ersetzt er nur 1 Erdblock. Damit er alles zu Erde ersetzt muss ich sagen, dass er kurz warten soll bis er "start" wieder auf 0 setzt. Wieso ist das so? Theoretisch sollte er alles zu Erde ersetzten.

Das bringt mich durcheinander wie Code abläuft. Vielleicht sollte das auch nicht passieren und meine art "engine" macht das so. Wie läuft code ab?

Computer, Software, Technik, programmieren, Java, Technologie, Spiele und Gaming

Meistgelesene Beiträge zum Thema Programmieren