
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
, ECHO
e incluso CLS
reemplazar 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 >nul
o >file.txt
y las declaraciones de eco correspondientes. No podrás mostrar progreso durante la ejecución de xcopy
esa 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
- el
@
prefijo del comando para evitar mostrar un solo comando; echo off
para evitar mostrar todos los comandos futuros (hasta que se vuelva a habilitar).
Esto se combina más comúnmente @echo off
como lo primero en su guión.