Эхо-команда с круглыми скобками в командном файле - PullRequest
0 голосов
/ 26 декабря 2018

Какую функцию выполняет открытая скобка в этой команде?

Почему нет закрытой скобки?

>> datatest.csv.TEMP echo(!modified!

1 Ответ

0 голосов
/ 26 декабря 2018

Это результат обсуждения DosTips около девяти лет назад.

Ваш код перенаправит значение !modified! в datatest.csv.TEMP или напечатаетпустая строка в этом файле, если переменная пуста.Согласно echo /?, официальный способ отображения пустой строки - использовать echo..Однако, если cmd.exe каким-то образом может найти исполняемый файл без расширения с именем echo (например, файл в том же каталоге, что и скрипт), этот файл используется вместо обычной команды echo.

Было рассмотрено несколько альтернатив echo., включая echo\, echo:, echo/ и echo(.echo\ было исключено в случае ситуации, когда существовала папка с именем echo, в которой содержался файл с тем же именем, что и все, что выводилось на экран.echo/ был исключен в ситуациях, когда отображаемая строка начиналась с ?, поскольку в этом случае отображалась справка.echo: был исключен для крайне редких ситуаций, когда использовалась подстановка строк.

В конечном итоге, echo( закончился просто потому, что никто не мог найти ситуацию, где это не сработало.(Позже было предположение, что echo=, echo, и echo; можно безопасно использовать без каких-либо странных побочных эффектов или крайних случаев. Однако, если вы пытаетесь отобразить буквенную строку /?,вместо этого будет отображаться справка для echo.)

) не включен, поскольку будет отображаться.

...