我正在开发一个简单的工具,它可以将文件复制到所需位置并从所需位置复制文件,我想用我选择的消息替换 CLI 中的打印,我四处寻找,到目前为止,我找到的所有解决方案都没有实现我想要的。这是我的代码片段:
@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
我想显示类似这样的消息“备份正在进行中...”而不是显示每个操作。我尝试过PRINT
、和 的组合ECHO
,甚至CLS
替换窗口内容,但无法正常工作。我错过了什么?我见过其他批处理脚本这样做(我不再需要记笔记了)并愿意做同样的事情。
答案1
在末尾添加了您选择的不在 STDOUT 上的重定向。例如>nul
或>file.txt
和相应的 echo 语句。您将无法在执行过程中显示进度xcopy
。
echo "Copy in progress"
xcopy > nul
echo "Copy finished"
这样,错误处理等等可能会更加复杂。
答案2
使用
- 命令
@
前缀以避免显示单个命令; echo off
以避免显示所有未来的命令(直到重新启用)。
这通常@echo off
与脚本中的第一项相结合。