Batch - "Echo is off." Fehler - Wie fixen?
Heeyy Gutefrage. Ich mach mein eigenes "OS" In batch, aber ich hab ein fehler den ich nicht fixen kann, ein Foto vom Code wo es nicht ging, und ein Foto vom Fehler in CMD:
Könnt ihr mir helfen?
Ich freu mich auf Antworten, danke im Voraus
4 Antworten
Es liegt definitiv daran , das Deinen Variable nach dem echo leer sind.
Leerzeichen nach einem Echo werden ignoriert, sofern darauf kein Inhalt folgt. Eine Leere Variable ist "kein Inhalt"! Ein Echo ohne Text entspricht einer Abfrage des Zustands von Echo.
@echo off
echo %blubb%
pause
Fix um sicherzustellen, das Leere Variablen oder die Worte on/off nicht als Kommando gewertet werden:
echo: %blubb%
echo: off
echo: on
Dein echo. ist tückisch, sollte (aus welchem Grund auch immer) in einem durch %path% gelisteten Ordner eine Datei Namens "echo" (ohne Extension existieren gibt es eine Fehlermeldung.
rem erzeuge leere Datei namens echo
break >echo
rem hier gibt einen Fehler
echo.
rem hier nicht
echo:
pause
Es dürfte äußerst unwahrscheinlich sein, das unter normalen Umständen eine solche Datei existiert. Aber jeder Aufruf von echo. veranlasst den Interpreter eine Datei "echo" zu suchen. Das belastet das System unnötig. Darum echo: !
Für jemanden, der in Batch ein "Betriebssystem" programmieren möchte, kennst Du Dich mit den syntaktischen Fallstricken von Batch erstaunlich schlecht aus.
iwie speichern die variablen nicht nach dem nächsten neustart von dem programm
Was dachtest Du? eine Variable, welche Du mit set "var=blubb" initialisierst, ist natürlich nur in der laufenden Sitzung gültig! Nach dem Neustart des Programms, sind solche Variablen wieder weg.
PS: gestern habe ich Dir einen Hinweis darauf gegeben wie If sicher zu verwenden ist. Gib mal in Deiner Passwort-Abfrage nur Enter , Leerzeichen oder etwas mit <>&| ein. Da ist Dein Echo-Problem ein Lacher...
Die Meldung kommt, weil eine Zeile so interpretiert wird, dass nur "echo" ausgeführt wird. Z.b. weil die Variablen %oobeemail% und %usernameoobee% leer sind.
Ich hab geschrieben "echo %oobeemail% %usernameoobe%
Das steht aber nicht in dem Bild, das du hochgeladen hast.
wait ich probiers nochmal von neu zu starten
hab im code geschaut, UND NATÜRLICH, es war leer, ich bin DUMB ASF
habs nochmal gemacht jetzt und jetzt steht wieder "ECHO is off." @ZaoDaDong
iwie speichern die variablen nicht nach dem nächsten neustart von dem programm
Die Variablen sind definitiv leer. Das ist der einzig mögliche Grund für diese Ausgabe. Vielleicht hast Du die Variablen an irgendeiner Stelle definiert, aber offensichtlich so, dass sie an dieser Stelle leer sind.
Kleine Gemeinheit am Rande. Weist Du einer Variablen den Wert einer leeren Variablen zu, ist sie ab diesem Augenblick nicht mehr definiert.
set x= bewirkt, dass %x% danach weg ist.
set x=%y% macht exakt das gleiche, wenn %y% leer ist.
%oobeemail% und %usernameoobe% sind zum Zeitpunkt des Aufrufs noch nicht definiert, folglich ist der Inhalt der Zeile beim Aufruf nur:
Echo
Echo ohne Paramete bewirkt die Ausgabe des Echostatus.
Echo off schaltet den Echostatus aus. Echo on schaltet ihn an. Ist des Echostatus on, dann werden die einzelnen Befahle eine Batchdatei vor der Ausführung angezeigt.
Zeile 8 prüfen! Dort steht nur "echo".
Meine Variablen sind NICHT leer. Wie kann ich es fixen