1 автоматически добавляется перед> или >> при запуске командного файла - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь скомпилировать очень простую команду в файл .bat.

whoami > "Desktop/laptop.txt"

Однако, когда я ее запускаю, cmd.exe интерпретирует ее как:

whoami 1> "Desktop/laptop.txt"

Это недопустимо из-за числа 1, добавленного перед >.Команда не выполняется.

Я не могу найти способ убрать это число 1.

1 Ответ

1 голос
/ 23 марта 2019

Чтобы завершить сказанное в комментариях, интерпретатор командной строки интерпретирует > (символ перенаправления) и >> (символ добавления) как 1> и 1>> соответственно, если они одни, например, echo sth > filename или echo sth >> filename.

Это потому, что числовые метки таковы:

  • 0 перенаправляет / добавляет STDIN в указанное место.
  • 1 перенаправляет / добавляет STDOUT в указанное место.
  • 2 перенаправляет / добавляет STDERR в указанное место
  • 3-9 не определены

Итак, когда вы вводите команду:

whoami > "Desktop/laptop.txt"

интерпретатор не может его понять и автоматически делает его 1> ..., поскольку предполагает, что вы хотите перенаправить STDOUT на Desktop/laptop.txt.

Смотрите некоторые интересные ссылки для дальнейшего чтения:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...