
Ich arbeite an einem einfachen Tool, das Dateien von und zu gewünschten Orten kopiert, und ich möchte den Ausdruck in der CLI durch eine Nachricht meiner Wahl ersetzen. Ich habe mich umgesehen, aber alle Lösungen, die ich bisher gefunden habe, implementieren nicht das, wonach ich suche. Hier ist ein Ausschnitt meines Codes:
@ECHO OFF
ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Code Snippets" ".\Backup\Code Snippets" /s /q /y
ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Projects" ".\Backup\Projects" /s /q /y
ECHO D | XCOPY "%USERPROFILE%\Documents\Visual Studio 2017\Templates" ".\Backup\Templates" /s /q /y
Ich möchte eine Nachricht anzeigen lassen, die etwa so aussieht:"Sicherung läuft..."anstatt dass jede Operation angezeigt wird. Ich habe Kombinationen aus PRINT
, ECHO
, und sogar ausprobiert CLS
, um den Fensterinhalt zu ersetzen, aber ich bekomme es nicht zum Laufen. Was übersehe ich? Ich habe gesehen, dass andere Batch-Skripte dies tun(von dem ich mir keine Notizen mehr machen muss)und würde das auch gerne tun.
Antwort1
Fügen Sie am Ende eine Umleitung Ihrer Wahl hinzu, die nicht auf STDOUT liegt. Beispielsweise >nul
oder >file.txt
und entsprechende Echo-Anweisungen. Auf diese Weise können Sie während der Ausführung keinen Fortschritt anzeigen xcopy
.
echo "Copy in progress"
xcopy > nul
echo "Copy finished"
Die Fehlerbehandlung usw. könnte auf diese Weise komplizierter sein.
Antwort2
Verwenden
- das
@
Befehlspräfix, um die Anzeige eines einzelnen Befehls zu vermeiden; echo off
um die Anzeige aller zukünftigen Befehle zu vermeiden (bis sie erneut aktiviert werden).
Dies wird am häufigsten @echo off
als allererstes Element in Ihrem Skript kombiniert.