Dlaczego nie mogę zadzwonić „IF” i „FOR” ani w partii, ani w cmd?

Szczerze mówiąc, nie oczekuję tutaj satysfakcjonującej odpowiedzi. Nie można wywołać tego polecenia i to wszystko (o ile znam jedyne polecenia, których nie można używać z wywołaniem). Oto kilka przykładów z ich wynikami:

C:\Windows\system32>call @if a==a echo called 
',' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call (@if a==a echo called)
';' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call if a==a echo called
'if' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call for  %a in (1) do @echo called
'for' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call @for  %a in (1) do @echo called
'+' is not recognized as an internal or external command,
operable program or batch file.

C:\Windows\system32>call (@for  %a in (1) do @echo called)
';' is not recognized as an internal or external command,
operable program or batch file.

Mam pewne podejrzenia, że ​​IF i FOR nie są w rzeczywistości „prawdziwymi” poleceniami - po prostu decydują się przekazać kontrolę wiersza poleceń do linii (lub bloku nawiasów) za nimi, czy nie, co myli połączenie. W każdym razie nawet wtedy, gdy występują błędy składniowe w nazwie FOR lub JEŻELI są wykrywane:

C:\Windows\system32>call (@if a= echo called)
= was unexpected at this time.

C:\Windows\system32>call (for %a (1) do echo called)
(1 was unexpected at this time.

Więc przynajmniej parsowanie jest wykonywane.

questionAnswers(2)

yourAnswerToTheQuestion