I thought I understood the benefits of using a legacy, stable technology for simple tasks. I'm executing this DOS command:
test.bat test Policy:
while the contents of test.bat are:
and I get this:Code:@ECHO ON SETLOCAL EnableDelayedExpansion SET RESULT=%2 IF '%RESULT%' == 'Policy:' SET RESULT=0 SET CHK=%RESULT:~0,16% SET RC=%RESULT:~-10% ECHO %RESULT% %CHK% %RC% IF '%CHK%' == 'An error occurred' ( ECHO %RC% EXIT /B %RC% ) REM
Code:Z:\WindowsSandbox\tools>SETLOCAL EnableDelayedExpansion Z:\WindowsSandbox\tools>SET RESULT=Policy: Z:\WindowsSandbox\tools>IF 'Policy:' == 'Policy:' SET RESULT=0 Z:\WindowsSandbox\tools>SET CHK=0 Z:\WindowsSandbox\tools>SET RC=0 Z:\WindowsSandbox\tools>ECHO 0 0 0 0 0 0 Z:\WindowsSandbox\tools>IF '0' == 'An error occurred' ( Z:\WindowsSandbox\tools>ECHO 0 0 Z:\WindowsSandbox\tools>EXIT /B 0 Z:\WindowsSandbox\tools>
Why does the IF compare result in the error exit? Thanks in advance for any clarity you can provide.
Win11, 25H2. (the latest)


Reply With Quote