Re wordexport:
It can be understood like this:
Part of the variables in set can all be called "environment variables". The main function of "environment variables" is to provide some available environment options before the program runs. These are not set after the program runs, but are set in advance, and their values usually do not change.
And errorlevel can be understood as a return value (ExitCode) after a program or command runs. Through this return value, you can roughly judge the running status of the program (whether it is executed normally or an error occurs). Therefore, this value changes with the executed command. Because of these differences from environment variables, so you can't get its value by set errorlevel. As for why exactly, I don't know, Microsoft knows.
Another suggestion is that when judging the return value of a program, it is best to use the format of "if errorlevel ExitCode". Because errorlevel can also be defined as a variable. At this time, if you use %Errorlevel% to judge, it will not be ExitCode, but the value of the variable %errorlevel% you defined. This will cause the judgment to be wrong and make the program process "go astray".