Re: Redirecting command output to environment variable and tracking errorlevel
- From: foxidrive <gotcha@xxxxxxxxxxxxxx>
- Date: Fri, 23 Feb 2007 01:05:21 +1100
On 22 Feb 2007 05:10:28 -0800, yairinbal@xxxxxxxxx wrote:
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?
Untested
@echo off
mycmd>file.txt
echo %errorlevel%
for /f "delims=" %%a in ('file.txt') do set Output=%%a
del file.txt
.
- References:
- Prev by Date: Redirecting command output to environment variable and tracking errorlevel
- Next by Date: Re: Redirecting command output to environment variable and tracking errorlevel
- Previous by thread: Redirecting command output to environment variable and tracking errorlevel
- Next by thread: Re: Redirecting command output to environment variable and tracking errorlevel
- Index(es):
Relevant Pages
|
Loading