¿Cómo puedo reemplazar la operación imprimir por lotes con un mensaje?

¿Cómo puedo reemplazar la operación imprimir por lotes con un mensaje?

Estoy trabajando en una herramienta simple que copia archivos hacia y desde las ubicaciones deseadas y quiero reemplazar la impresión en la CLI con un mensaje de mi elección. He buscado y hasta ahora todas las soluciones que he encontrado no lo hacen. implementar lo que estoy buscando. Aquí hay un fragmento de mi código:

@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

Quiero que un mensaje muestre algo como"Respaldo en proceso..."en lugar de mostrar cada operación. He probado combinaciones de PRINT, ECHOe incluso CLSreemplazar el contenido de la ventana, pero no puedo hacerlo funcionar. ¿Qué me estoy perdiendo? He visto otros scripts por lotes hacer esto(del cual ya no tengo que tomar notas)y me gustaría hacer lo mismo.

Respuesta1

Se agregó una redirección de su elección al final que no está en STDOUT. Por ejemplo >nulo >file.txty las declaraciones de eco correspondientes. No podrás mostrar progreso durante la ejecución de xcopyesa manera.

echo "Copy in progress"
xcopy > nul
echo "Copy finished"

El manejo de errores, etc., podría ser más complicado de esa manera.

Respuesta2

Usar

  1. el @prefijo del comando para evitar mostrar un solo comando;
  2. echo offpara evitar mostrar todos los comandos futuros (hasta que se vuelva a habilitar).

Esto se combina más comúnmente @echo offcomo lo primero en su guión.

información relacionada