Link to home
Start Free TrialLog in
Avatar of Alex
AlexFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Go to End in Batch file

Morning,

So I have this code which people helped me with, i'm just trying to get it to skip the installation if a reg key exists.

@echo off
setlocal enabledelayedexpansion

set GUIDs=DDF96E66-E39B-4A69-B776-2DE49EBCAFBD D7D3F00A-638B-41DE-A2A3-FFC6EF034783 B1A6CB20-C032-4228-940F-AC3BC9BF6B3E 3EB41C0B-00EF-4C8B-9FF7-FF252E2F4E33 D8A08493-2F06-4EB2-A636-4392991981AB 
for %%a in (%GUIDs%) do (
     reg.exe query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{%%a}" >NUL 2>&1
      if not errorlevel 1 (
            echo Uninstalling %%a
          msiexec.exe /X{%%a} /quiet
      )
)

:::8x8 VOD Latest Version Installation
::: Copy the latest version of the VOD to the path below and change the msi filename

Reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{5FCB2176-11C5-4114-889B-CD93066BE094}
IF %errorlevel%==0 GOTO END


msiexec.exe /i "\\domain.com\SYSVOL\domain.com\scripts\8x8\VOD_5_6_0.msi" /qn
                (if %errorlevel%==0 (
                  echo %date% %time% %Computername% - Installation succeeded
)              ELSE (
                                echo %date% %time% %Computername% - Installation FAILED - %errorlevel%
)) >>      "\\file08\W common\logs\%Computername% InstallVOD.log""
::: Please wait for the time to finish

timeout 15

:END

Open in new window


The bit I've got issues with is

Reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{5FCB2176-11C5-4114-889B-CD93066BE094}
IF %errorlevel%==0 GOTO END

And then the :END label, it doesn't seem to work quite right.

Is it right or am I missing something?

Thanks
Alex
ASKER CERTIFIED SOLUTION
Avatar of oBdA
oBdA

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Alex

ASKER

What's that bit here

>NUL 2>&1
if not errorlevel 1 (
      echo 8x8 VOD Latest Version is already installed, leaving.
      goto :eof
)

The nul bit?

Thanks
Alex
Avatar of oBdA
oBdA

The ">NUL" redirects the standard output of reg.exe to the NUL device, that is, suppresses it, since you're not really interested in the value, just whether the key exists.
The "2>&1" redirects the error output (if the key wasn't found) to the standard output (which is already suppressed), suppressing it as well.
Avatar of Alex

ASKER

Excellent, thank you again, I thought I'd got pretty close but I love your reporting.