В пакетном файле 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
не очень элегантно само по себе. Это справедливо, но а) это уже включено в этом случае и б) это довольно идиоматично. Мне нравится ясность этого (воображаемого синтаксиса):
@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
Очевидно, что это субъективное мнение, но сводится к желанию украсить только необычный случай.
И, наконец, если это действительно невозможно, то достаточно справедливо, но нет никакого вреда в том, чтобы быть уверенным :)