Y
yairinbal
Hello,
I am trying to run a command, fetch its output to an environment
variable and get errorlevel. I know I can solve it with simple exe/
perl that do it, but I need to stick to CMD
I first tried:
for /f "delims=" %%A in ('mycmd') do set Output=%%A
echo %errorlevel%
echo %Output%
The output works fine but the ErrorLevel is of the set command and not
of mycmd.
Then I tried
for /f "delims=" %%A in ('mycmd') do set Rc=%errorlevel% & set Output=%
%A
echo %Rc%
echo %Output%
But the cmd shell substiture error level before running the command.
The next step was using delayed expansion:
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%A in ('mycmd') do set Rc=!errorlevel! & set Output=%
%A
echo %Rc%
echo %Output%
but still I've got the errorlevel value of before the execution of CMD
Does anyone have any ideas?
Thanks,
Yair
I am trying to run a command, fetch its output to an environment
variable and get errorlevel. I know I can solve it with simple exe/
perl that do it, but I need to stick to CMD
I first tried:
for /f "delims=" %%A in ('mycmd') do set Output=%%A
echo %errorlevel%
echo %Output%
The output works fine but the ErrorLevel is of the set command and not
of mycmd.
Then I tried
for /f "delims=" %%A in ('mycmd') do set Rc=%errorlevel% & set Output=%
%A
echo %Rc%
echo %Output%
But the cmd shell substiture error level before running the command.
The next step was using delayed expansion:
setlocal ENABLEDELAYEDEXPANSION
for /f "delims=" %%A in ('mycmd') do set Rc=!errorlevel! & set Output=%
%A
echo %Rc%
echo %Output%
but still I've got the errorlevel value of before the execution of CMD
Does anyone have any ideas?
Thanks,
Yair