Ich habe das Echo in der Fledermausdatei ausgeschaltet.
@echo off
dann mache ich so etwas
...
echo %INSTALL_PATH%
if exist %INSTALL_PATH%(
echo 222
...
)
und ich bekomme:
Das System kann den angegebenen Pfad nicht finden.
Nachricht zwischen diesen beiden Echos.
Was kann der Grund für diese Nachricht sein und warum ignoriert die Nachricht das Echo aus?
batch-file
cmd
echo
Aleksandr Kravets
quelle
quelle
if exist "%INSTALL_PATH%" (...
@echo off
Dies bedeutet lediglich, dass keine Befehle an das Terminal zurückgegeben werden sollten.Antworten:
Wie Mike Nakis sagte,
echo off
verhindert nur das Drucken von Befehlen, nicht Ergebnisse. Um das Ergebnis eines Befehls>nul
auszublenden, fügen Sie am Ende der Zeile hinzu, und um Fehler auszublenden, fügen Sie hinzu2>nul
. Zum Beispiel:Wie Krister Andersson sagte, ist der Grund, warum Sie einen Fehler erhalten, dass Ihre Variable mit Leerzeichen erweitert wird:
Wird:
Was bedeutet:
Sie sehen den Fehler, weil Sie keinen Ordner mit dem Namen "App" haben. Setzen Sie Anführungszeichen um den Pfad, um diese Aufteilung zu verhindern.
quelle
Speichern Sie diese als * .bat-Datei und sehen Sie Unterschiede
quelle
"Echo aus" wird nicht ignoriert. "Echo aus" bedeutet, dass Sie nicht möchten, dass die Befehle wiedergegeben werden. Es sagt nichts über die Fehler aus, die durch die Befehle erzeugt werden.
Die Zeilen, die Sie uns gezeigt haben, sehen in Ordnung aus, daher ist das Problem wahrscheinlich nicht vorhanden. Bitte zeigen Sie uns weitere Zeilen. Bitte zeigen Sie uns auch den genauen Wert von INSTALL_PATH.
quelle
quelle
IF EXIST "%INSTALL_PATH%"
.C:\etc etc\test
.Für mich wurde dieses Problem dadurch verursacht, dass das Dateicodierungsformat falsch war. Ich habe einen anderen Editor verwendet und er wurde so gespeichert,
UTF-8-BOM
dass die allererste Zeile, die ich hatte,@echo off
aber ein versteckter Charakter war.Also habe ich die Codierung in einfachen alten
ANSI
Text geändert , und dann ist das Problem behoben.quelle