バッチファイル内の単一コマンドのエコーをオンにする

Edd Inglis

Windowsバッチファイルで、エコーを有効にした場合(デフォルト)、接頭辞を付けることで個々のコマンドのエコーを無効にできます@。例:

some_command_that_will_be_echoed
@some_command_that_wont_be_echoed

ただし、でエコーを無効にしました@echo offが、時々コマンドをエコーしたいと思います。魔法に相当するものはありますか?例えば:

@echo off
some_command_that_wont_be_echoed
<unknown_magic_prefix> some_command_that_will_be_echoed

私はこの質問を見つけました:一時的にエコーをオンにします、しかしそれは本質的に「エコーをオンにして、あなたのことをして、そしてそれを再びオフにする」と言います。それはできますが、もっとエレガントなものが欲しいです。

編集:このWindowsバッチファイル:関連する質問リストに表示されるコマンドのインラインエコーを有効にする方法それは基本的に私のものと同じ質問であり、ほぼ同じくらい成功しています!

EDIT2:コンテキストを提供するために、以下は私がしていることのセクションです。この投稿のために、Cスタイルのコメントで装飾していることに注意してください。それらは実際のスクリプトにはありません。

@echo off   // Because I don't want the bulk of the commands displayed. 
            // (In fact it's worse than that, this file is called from another
            //  with echo already disabled.)

title CMD Window with SVN enabled

set PATH=  ...  // my new path which happens to include SVN this time

svn --version --quiet   // This command outputs just the SVN version as a number
                        // but it gets rather lost on its own, and the 'full'
                        // output is too wordy.  My belief is that if the entire
                        // command was echoed, it would provide a perfect 
                        // context.

echo SVN version is:    // This is an obvious alternative, simply putting a
svn --version --quiet   // message before the actual command.

echo svn --version --quiet  // Or even just echoing the command 'by hand'
svn --version --quiet

+@svn --version --quiet   // This imaginary syntax would be the gold-standard

always_echo( svn --version --quiet )   // This function would be acceptable, but
                                       // its definition eludes me and seems 
                                       // clunky

<some batch file magic preamble>    // This would be okay, but would get arduous
svn --version --quiet               // if it was long-winded or had to be done a
<some batch file magic to close>    // few times or more.

強調するために、これは「修正」するのが比較的簡単な特定の例ですが、私はそれほど単純ではないかもしれない他の状況で使用できるより一般的な解決策を求めています。

@Compo@echo offは、それ自体はあまりエレガントではないことを合理的に指摘しましたそれは公平ですが、a)この場合はすでに有効になっており、b)かなり慣用的です。私はこれの明快さが好きです(想像上の構文):

@echo off
command_1    // not echoed
command_2    // not echoed
+@command_3  // IS echoed and stands out
command_4    // not echoed

@command_1    // not echoed
@command_2    // not echoed
command_3     // IS echoed and gets a little lost
@command_4    // not echoed

明らかにそれは主観的な意見ですが、要約すると、珍しいケースだけを飾りたいという願望になります。

そして最後に、それが本当に不可能な場合は、十分に公平ですが、確実にすることに害はありませ:)

ジェブ

小さなマクロ(%+@%)を使用すると、コマンドが表示されて実行されます。

@echo off    
call :define_macro

setlocal EnableDelayedExpansion
set var=content

%+@% ver
%+@% ver /?
%+@% echo %var% !var!
exit /b

:define_macro
(set \n=^^^

)
set ^"+@=for %%# in (1 2) do if %%#==2 (%\n%
    setlocal EnableDelayedExpansion %\n%
    for /F "tokens=1,*" %%1 in ("!time: =0! !argv!") do (%\n%
        endlocal%\n%
        echo %%1 Execute: %%2%\n%
        endlocal%\n%
        %%2%\n%
      )%\n%
    ) ELSE setlocal DisableDelayedExpansion ^& set argv="

exit /b

出力:

14:04:08,05実行:ver

Microsoft Windows [バージョン10.0.17134.1069]
14:04:08,05実行:ver /?
Windowsのバージョンを表示します。

VER
14:04:08,05実行:echo content!var!
コンテンツコンテンツ

編集:sstの提案から、ヘルパー関数を削除しましたが、カスタムで素敵なプレフィックスを使用できるようにするためecho onに、マクロ内部に反対することにしました

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Windowsバッチファイル:コマンドのインラインエコーを有効にする方法

分類Dev

コマンドライン jgit を使用して、単一のファイルをその git バージョンにチェックアウトする方法は?

分類Dev

forループのバッチコマンド内の既存のファイル名に追加する方法

分類Dev

バッチファイル内のコマンドからコマンドへのエコー出力

分類Dev

バッチファイルに括弧付きのエコーコマンド

分類Dev

バッチファイル内の文字列のリストにforおよびifコマンドを使用する

分類Dev

forループ内の単一の%がコマンドラインで環境変数として解釈されないのに、バッチファイル内にあるのはなぜですか?

分類Dev

バッチ:バッチファイルのコマンドラインパラメータを確認する

分類Dev

フォルダ内のすべてのファイルを表示するバッチコマンド

分類Dev

コマンドをエコーする方法(ファイルを作成する)-バッチファイル

分類Dev

複数のビデオファイルと字幕ファイルを異なるファイル名に順番にMuxするバッチコマンド

分類Dev

Windowsパスをファイルに変換する方法:SVNコマンドラインでの使用に適したバッチファイル内のURL

分類Dev

1つのバッチファイル内の複数のコマンドに関する問題

分類Dev

バッチ:FORコマンドを使用して、フォルダー内のファイルを確認します

分類Dev

各フォルダ内のファイルに対してターミナルでバッチコマンドを実行する方法

分類Dev

バッチファイルのSTARTコマンドに複数のコマンドを渡す

分類Dev

ワイルドカード名で最新のファイルを取得するバッチコマンド

分類Dev

単一のコマンドで証明書チェーン内のすべての証明書を個別の.crtファイルにエクスポートする方法

分類Dev

単一のバッチファイルコマンドのディレクトリを一時的に変更します

分類Dev

バッチファイルのコマンド出力を解析する方法

分類Dev

バッチファイルで複数のコマンドを実行する

分類Dev

フォルダ内のすべてのファイルを処理し、結果を単一のファイルに出力するコマンド

分類Dev

フォルダ内のすべてのファイルを処理し、結果を単一のファイルに出力するコマンド

分類Dev

単一バイトのXORエンコードファイルを解読する

分類Dev

PuTTYに自動ログインし、特定のコマンドを実行するバッチファイル

分類Dev

バッチファイルのコマンドラインパラメータを更新する

分類Dev

バッチファイルのforループの後にコマンドを実行しますか?

分類Dev

ファイル内のエンコーディングをバッチ変換

分類Dev

フォルダ内の複数のファイルにいくつかの情報を追加するバッチコマンド

Related 関連記事

  1. 1

    Windowsバッチファイル:コマンドのインラインエコーを有効にする方法

  2. 2

    コマンドライン jgit を使用して、単一のファイルをその git バージョンにチェックアウトする方法は?

  3. 3

    forループのバッチコマンド内の既存のファイル名に追加する方法

  4. 4

    バッチファイル内のコマンドからコマンドへのエコー出力

  5. 5

    バッチファイルに括弧付きのエコーコマンド

  6. 6

    バッチファイル内の文字列のリストにforおよびifコマンドを使用する

  7. 7

    forループ内の単一の%がコマンドラインで環境変数として解釈されないのに、バッチファイル内にあるのはなぜですか?

  8. 8

    バッチ:バッチファイルのコマンドラインパラメータを確認する

  9. 9

    フォルダ内のすべてのファイルを表示するバッチコマンド

  10. 10

    コマンドをエコーする方法(ファイルを作成する)-バッチファイル

  11. 11

    複数のビデオファイルと字幕ファイルを異なるファイル名に順番にMuxするバッチコマンド

  12. 12

    Windowsパスをファイルに変換する方法:SVNコマンドラインでの使用に適したバッチファイル内のURL

  13. 13

    1つのバッチファイル内の複数のコマンドに関する問題

  14. 14

    バッチ:FORコマンドを使用して、フォルダー内のファイルを確認します

  15. 15

    各フォルダ内のファイルに対してターミナルでバッチコマンドを実行する方法

  16. 16

    バッチファイルのSTARTコマンドに複数のコマンドを渡す

  17. 17

    ワイルドカード名で最新のファイルを取得するバッチコマンド

  18. 18

    単一のコマンドで証明書チェーン内のすべての証明書を個別の.crtファイルにエクスポートする方法

  19. 19

    単一のバッチファイルコマンドのディレクトリを一時的に変更します

  20. 20

    バッチファイルのコマンド出力を解析する方法

  21. 21

    バッチファイルで複数のコマンドを実行する

  22. 22

    フォルダ内のすべてのファイルを処理し、結果を単一のファイルに出力するコマンド

  23. 23

    フォルダ内のすべてのファイルを処理し、結果を単一のファイルに出力するコマンド

  24. 24

    単一バイトのXORエンコードファイルを解読する

  25. 25

    PuTTYに自動ログインし、特定のコマンドを実行するバッチファイル

  26. 26

    バッチファイルのコマンドラインパラメータを更新する

  27. 27

    バッチファイルのforループの後にコマンドを実行しますか?

  28. 28

    ファイル内のエンコーディングをバッチ変換

  29. 29

    フォルダ内の複数のファイルにいくつかの情報を追加するバッチコマンド

ホットタグ

アーカイブ