
私は、ファイルを目的の場所にコピーしたり目的の場所からコピーしたりする簡単なツールに取り組んでおり、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
これは、スクリプトの一番最初の部分としてに組み込まれるのが最も一般的です。