Ergebnis 1 bis 8 von 8
  1. #1
    Mitglied
    Registriert seit
    Nov 2014
    Beiträge
    6
    Danksagungen
    0

    Standard Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Hi,

    ich hab mir aus verschiedenen Programmcodes versucht was zusammenzuschustern aber irgendwie funktioniert das noch nicht ganz, ich glaub der Fehler liegt in der If/Else Abfrage. Btw. ich hab absolut KEINEN PLAN was ich da zusammengschrieben hab, ich kann bisschen vba in excel aber mehr auch nicht.

    Sinn der Batch datei:
    In einer Textdatei.txt auf einem bestimmten Pfad steht entweder eine 1 oder eine 0. Die Batch datei soll den Inhalt prüfen und falls eine 1 drinsteht ein "Besetzt!" ausgeben. Wenn eine 0 drinsteht soll ein "Frei!" ausgegeben werden.


    @echo off

    SET /p variable=<C:\...\test.txt

    if /p EQU "1" (Echo msgbox"Besetzt!",0,"Launcher!" >Meldung1.vbs
    ping localhost -n 3 >NUL
    start Meldung1.vbs) else (Echo msgbox"Frei!",0,"Launcher!" >Meldung0.vbs
    ping localhost -n 3 >NUL
    start Meldung0.vbs)


    Ich wollte ein waschechtes Meldungsfenster haben deswegen hab ich für die ausgabe so eine komische Befehlskette drin. Bisher erkennt meine if- Bedingung einfach nicht wenn da eine 1 drinsteht und spuckt immer die zweite Meldung aus.

    Kann mir jemand vielleicht mit eins-zwei sonderzeichen weiterhelfen?

    Dankeeee

  2. #2
    deaktivierter Nutzer
    deaktiviertes Benutzerkonto

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Sonderzeichen werden dir da kaum helfen, wenn du nicht angibst, was verglichen werden soll. Außerdem kennt IF, soweit ich weiß, als Parameter nur I und kein P.
    Geändert von m6ld8ywqya (18. 05. 2017 um 12:53 Uhr)

  3. #3
    Mitglied

    (Threadstarter)


    Registriert seit
    Nov 2014
    Beiträge
    6
    Danksagungen
    0

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Zitat Zitat von m6ld8ywqya Beitrag anzeigen
    Sonderzeichen werden dir da kaum helfen, wenn du nicht angibst, was verglichen werden soll. Außerdem kennt IF, soweit ich weiß, als Parameter nur I und kein P.
    Ganz einfach, es soll geprüft werden ob in der Test.txt eine 1 steht, wenn ja soll die Ausgabe "Besetzt" ausgegeben werden, wenn nicht soll die Ausgabe "Frei" ausgegeben werden.

    Vereinfacht:
    IF [Der Inhalt von Test.txt] = "1" Dann Ausgabe:"Besetzt"
    Else Ausgabe:"Frei"


    Bei meinem obrigen Code spuckt er jedesmal nur die "Else" Ausgabe aus. Also stimmt was mit der Überprüfung nicht. Kann es sein das die Variablenzuordnung nicht funktinoiert? Wenn ich /i anstelle /p verwende macht er garnichts.
    Geändert von Crakkpot (18. 05. 2017 um 13:47 Uhr)

  4. #4
    Mitglied Avatar von sleeep
    Registriert seit
    Nov 2009
    Ort
    in the ☁
    Beiträge
    173
    Danksagungen
    3

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Wie bereits erwähnt fehlt dir gänzlich die Überprüfung auf den Inhalt der Variablen.

    Hier ein funktionierendes Beispiel, der Einfachheit halber habe ich für die Ausgabe der MessageBox msg.exe missbraucht, um die Erstellung und Ausführung der VBS-Datei zu sparen.

    Code:
    @ECHO OFF
    SET /P bit=<C:\...\test.txt
    IF %bit%==1 (MSG %USERNAME% "Besetzt!") ELSE IF %bit%==0 (MSG %USERNAME% "Frei!")
    ich hoffe, das hilft dir weiter.

    mfg sleeep

  5. #5
    大麻のゴブリン Avatar von maddog
    Registriert seit
    Feb 2000
    Ort
    アイルランド
    Beiträge
    227
    Danksagungen
    7

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Zitat Zitat von Crakkpot Beitrag anzeigen
    In einer Textdatei.txt auf einem bestimmten Pfad steht entweder eine 1 oder eine 0. Die Batch datei soll den Inhalt prüfen und falls eine 1 drinsteht ein "Besetzt!" ausgeben. Wenn eine 0 drinsteht soll ein "Frei!" ausgegeben werden.
    Was verstehst du unter einem "bestimmten Pfad"? Eine Textdatei besteht aus Zeilen mit Wörtern, Zahlen usw., nicht Pfaden. Mit dem Code
    Code:
    SET /p variable=<C:\...\test.txt
    wird nur die erste Zeile der Textdatei eingelesen. Das beste wäre, du postest die Textdatei oder ein paar Zeilen hier rein und zeigst an diesem Beispiel, was geschehen soll.

  6. #6
    Mitglied

    (Threadstarter)


    Registriert seit
    Nov 2014
    Beiträge
    6
    Danksagungen
    0

    Thumbs up Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Zitat Zitat von sleeep Beitrag anzeigen
    Wie bereits erwähnt fehlt dir gänzlich die Überprüfung auf den Inhalt der Variablen.

    Hier ein funktionierendes Beispiel, der Einfachheit halber habe ich für die Ausgabe der MessageBox msg.exe missbraucht, um die Erstellung und Ausführung der VBS-Datei zu sparen.

    Code:
    @ECHO OFF
    SET /P bit=<C:\...\test.txt
    IF %bit%==1 (MSG %USERNAME% "Besetzt!") ELSE IF %bit%==0 (MSG %USERNAME% "Frei!")
    ich hoffe, das hilft dir weiter.

    mfg sleeep
    Danke danke, jetz hab ich begriffen wie man die variablen deffiniert etc.
    Habs so gelöst:

    @echo off

    SET /p INHALT=<C:\....\test.txt

    if %INHALT%==1 (
    Echo msgbox"Besetzt !",0,"Titel!" >test.vbs
    ping localhost -n 3 >NUL
    start test.vbs
    ) else (
    Echo msgbox"FREI!",0,"Titel!" >test.vbs
    ping localhost -n 3 >NUL
    start test.vbs
    )


    Wie gesagt hatte einfach keine Ahnung vom Syntax und wenn man das nicht so drauf hat kommen einem die Beispielprogrammcodes im Internet alle einfach wiedersprüchlich vor weil jeder eine andere Problemstellung hat und was anderes programmiert.

    Danke nochmals

  7. #7
    deaktivierter Nutzer
    deaktiviertes Benutzerkonto

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Zitat Zitat von Crakkpot Beitrag anzeigen
    Wie gesagt hatte einfach keine Ahnung vom Syntax und wenn man das nicht so drauf hat kommen einem die Beispielprogrammcodes im Internet alle einfach wiedersprüchlich vor weil jeder eine andere Problemstellung hat und was anderes
    Äh, in der Regel hilft dann:

    <Befehl> /?

  8. #8
    Mitglied
    Registriert seit
    Apr 2011
    Beiträge
    308
    Danksagungen
    20

    Standard Re: Batch datei soll txt.datei prüfen und jeh nach Inhalt Antwort ausgeben.

    Der Ganze Ansatz klingt Furchtbar.


    1. Ich hoffe das deine Datei etwas Komplexer ist als nur eine 1 oder Null, wenn nicht,
      erklär mal wo die Datei Herkommt und was deine Eigentliches Ziel / Problem ist. Das steuern einen Batchscripts kann es nicht sein und die Datei als Inter Prozess Kommunikation zu Nutzen, damit sind schon Generationen von Programmieren auf die Nase geflogen, vermutlich finden wir gemeinsam eine Besser Lösung als eine Datei welche nur ein Byte enthält.

    2. Wenn du zur Anzeige der Messagebox so wie so VBS nimmst, Warum wertest Du nicht auch Die Datei für die 1 oder 0 damit aus. Dann sparst du die eine Programmiersprache und dein Programm wird kleiner weil es nicht länger 2 Prozesse braucht ( Denn Für die Batch Datei und denn Für Das VBS) nur um eine billige Messagebox dazustellen. Dazu kommt noch das du Unter VBS sicher ein Sleep hast und nicht auf so einen kruden Hack wie ping localhost zurückgreifen musst.

    3. Wenn du bei deiner Batchdatei Bleiben willst. Ich würde dir abraten, aber das sagte ich schon. Wieso die Frei und Besetzt messageboxen Jedesmal neu erstellen? dar ändert sich nichts. einfach zwei vbs scripte einmal für frei einmal für besetzt neben die batch legen und diese aufrufen. ggf. kannst du dir auch so den Ping Zirkus sparen und brauchst die Verzögerung nicht. Achtung in denn Fall lohnt es sich absolute Pfade zu verwenden, damit die VBS immer gefunden werden.
      Dein aktueller Code hat außerdem den Nachteil das er in seinen aktuellen Verzeichnis eine Datei Test.vbs hinterlässt. Je nachdem kann das
      • eine menge dieser test.vbs Dateien in diversen Ordnern hinterlassen
      • bei diesen Innovativen Namen, eine gleichnamige Datei die schon im aktuellen Verzeichnis liegt überschreiben.
      beides sorgt auf lange Sicht für Unmut bei den Benutzern des System.

  9.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •