Мне просто интересно. Когда я набираю ; в cmd, он просто игнорирует его.
;
Я могу набрать ;;;;;;;;;;;;;;;, и он будет делать то же самое, но если я do ;a он выдаст ошибку.
;;;;;;;;;;;;;;;
;a
Почему?
;">
Точка с запятой не игнорируется cmd.exe; скорее, он даже особенно известен, а именно как разделитель токенов, который используется для отделения команд от его аргументов и аргументов друг от друга. Вот все такие символы:
cmd.exe
0x20
0x09
,
0x2C
0x3B
=
0x3D
0x0B
0x0C
0xFF
Обратите внимание, что несколько последовательных разделителей токенов сворачиваются в один.
; - это разделитель.
Разделители отделяют один параметр от следующего - они разбивают командную строку на слова.
Подробнее на https://ss64.com/nt/syntax-esc.html
Командная строка не игнорирует символы ";", ";" является разделителем, и cmd распознает его как таковой, поэтому он не «игнорирует» символ, а читает его так же, как пробел, поэтому ничего не появляется, когда вы пишете его отдельно.