
원하는 위치 간에 파일을 복사하는 간단한 도구를 작업 중이며 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
및 해당 에코 문이 있습니다. 그런 식 으로 실행하는 동안 진행 상황을 표시할 수 없습니다 xcopy
.
echo "Copy in progress"
xcopy > nul
echo "Copy finished"
그런 식으로 오류 처리 등이 더 복잡해질 수 있습니다.
답변2
사용
@
단일 명령이 표시되는 것을 방지하기 위한 명령 접두사 ;echo off
(다시 활성화될 때까지) 향후 모든 명령이 표시되지 않도록 합니다.
이것은 가장 일반적으로 @echo off
스크립트의 첫 번째 항목으로 결합됩니다.