Bildschirmausgabe vollständig ausschalten
Hallo allerseits!
Ich schreibe zur Zeit ein Batch-Script, welches die Namen bestimmter Unterordner und Dateien ausliest und mit Hilfe von WBAT in Bildschirmmenüs ausgibt.
Das funktioniert soweit auch schon ganz gut. Das einzige was mich ein bisschen stört, ist die Tatsache, dass ich die sonstige Bildschirmausgabe mit "@ECHO OFF" nicht vollständig ausschalten kann. Deshalb blitzen immer noch kurz die SET-Befehle auf, bevor ich den Bildschirminhalt via "CLS" lösche und das WBAT-Menü erstelle.
Ich habe bereits versucht, Hintergrund- und Schriftfarbe gleichermaßen auf Schwarz zu setzen, aber das erlaubt die cmd.exe nicht. Würde mich freuen, wenn mir jemand einen Tipp geben würde, wie ich das trotzdem hinkriegen könnte.
Anbei noch ein kleiner Code-Schnipsel:
SET LastName=
SET /A NumberNames=0
FOR /F "tokens=* delims=" %%a IN ('DIR /AD /B') DO CALL "%BatchFilesDirPath%\ReadingFolderNames.bat" "%%a"
SET Fol
ReadingFolderNames.bat
IF "%~1" == "%LastName%" GOTO :End
SET /A NumberNames=%NumberNames%+1
SET "FolderName%NumberNames%=%~1"
SET "MenuItem%NumberNames%=%~1"
SET LastName=%~1
:End
Ich schreibe zur Zeit ein Batch-Script, welches die Namen bestimmter Unterordner und Dateien ausliest und mit Hilfe von WBAT in Bildschirmmenüs ausgibt.
Das funktioniert soweit auch schon ganz gut. Das einzige was mich ein bisschen stört, ist die Tatsache, dass ich die sonstige Bildschirmausgabe mit "@ECHO OFF" nicht vollständig ausschalten kann. Deshalb blitzen immer noch kurz die SET-Befehle auf, bevor ich den Bildschirminhalt via "CLS" lösche und das WBAT-Menü erstelle.
Ich habe bereits versucht, Hintergrund- und Schriftfarbe gleichermaßen auf Schwarz zu setzen, aber das erlaubt die cmd.exe nicht. Würde mich freuen, wenn mir jemand einen Tipp geben würde, wie ich das trotzdem hinkriegen könnte.
Anbei noch ein kleiner Code-Schnipsel:
SET LastName=
SET /A NumberNames=0
FOR /F "tokens=* delims=" %%a IN ('DIR /AD /B') DO CALL "%BatchFilesDirPath%\ReadingFolderNames.bat" "%%a"
SET Fol
ReadingFolderNames.bat
IF "%~1" == "%LastName%" GOTO :End
SET /A NumberNames=%NumberNames%+1
SET "FolderName%NumberNames%=%~1"
SET "MenuItem%NumberNames%=%~1"
SET LastName=%~1
:End
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 117489
Url: https://administrator.de/contentid/117489
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
5 Kommentare
Neuester Kommentar
Hallo NickMcNaim.
Set Befehle erzeugen nur bei Fehlern oder ohne Zuweisung eine Ausgabe.
Wenn du eine Variable initalisierst kannst du vorher feststellen ob sie defniert ist.
Dein Code-Schnipsel kommt Aufgrund fehlendem Tagging mit < code> < /code> nur unvollständig an.
Wenn deine CMD Fenster eine von Command.com nicht unterstützte Größe hat (nur 80 Zeichen mal 25/43/50 Zeilen) kann es bei Eiunsatz von 16bit Programmen zu diesem Flackern kommen.
Gruß
LotPings
Set Befehle erzeugen nur bei Fehlern oder ohne Zuweisung eine Ausgabe.
Wenn du eine Variable initalisierst kannst du vorher feststellen ob sie defniert ist.
If defined LastName SET "LastName="
Dein Code-Schnipsel kommt Aufgrund fehlendem Tagging mit < code> < /code> nur unvollständig an.
Wenn deine CMD Fenster eine von Command.com nicht unterstützte Größe hat (nur 80 Zeichen mal 25/43/50 Zeilen) kann es bei Eiunsatz von 16bit Programmen zu diesem Flackern kommen.
Gruß
LotPings
Wenn du eine Variable sowieso löschen willst, kannst die Überprüfung des Vorhandenseins auch ruhig lassen.
@77559
Irgendwelche Einwände?
Set Lastname=
@77559
Irgendwelche Einwände?
Zitat von @78632:
@77559
Irgendwelche Einwände?
Ich würde, um eindeutig zu bleiben und Übertragungsfehler auszuschließen immer@77559
Irgendwelche Einwände?
Set "Lastname="
Gruß
LotPings
Einverstanden. Es ging mir ja nur um die vorherige Überprüfung.