2016-04-04 6 views
1

Ich brauche für alle Maschinen ein Programm aus allen meinen Zweig Computer (32bit & 64bit) und neu installieren und Update-Version der Software mit Registry Fix zu entfernen. scheint nicht schwierig, aber ich versuche, eine Batch-Datei (wahrscheinlich am einfachsten), um dies zu tun, und ich bin auf der Überprüfung der OS-Version Teil stecken.Software Entfernung/Neuinstallation mit der Batch-Datei

Kann ich Hilfe bekommen? Hier ist die Charge; Wenige Zeiger;

  • die Prüffehler Aussage war, weil ich nicht sicher
  • das löschen Sie das Verzeichnis-Anweisung ein Windows Installer-Fehler immer nicht funktioniert, warum so kann ich nur es auszugeben.

Der Code:

echo off 

:CheckOS (this part not done) 
IF EXIST "%PROGRAMFILES(X86)%" (GOTO disconnect) ELSE (GOTO Fincentric check) 

if exist r:\ goto disconnect 

:disconnect 
net use r: /d 

net use r: \\a0363sfp06\rfsnt 
pause 

:check 
if exist c:\%programfiles%\Fincentric\CAMNet   goto remove01 else 
if exist c:\%programfiles%\Fincentric\BridgeNET v2.3.0 goto remove02 else 
if exist c:\%programfiles%\Fincentric\CAMPlugins  goto remove03 else 
if exist c:\%programfiles%\Fincentric\Canvas   goto remove04 else 
if exist c:\%programfiles%\Fincentric\Platform   goto remove05 else 
if exist c:\%programfiles%\Fincentric\SupportLibraries goto remove06 else 


:remove01 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBCAMNet_CGI.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 
:remove02 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBBridgeNET.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 
:remove03 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBCAMPlugins.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 
:remove04 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBCanvas.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 
:remove05 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBPlatform.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 
:remove06 
start /wait msiexec /quiet /qr /uninstall R:\WBDK\WBSupportLibraries.msi 
if %ERRORLEVEL% EQU 1721 (
    echo Failure Reason Given is %errorlevel% 
    exit /b %errorlevel% 
) 

:Fincentric check 
cls 
echo Checking if Fincentric folder still exist.... 
if exist c:\%PROGRAMFILES(X86)%\Fincentric 
TIMEOUT /T 3 /NOBREAK 
del /S /Q "c:\Program Files"\fincentric goto alldone 
pause 

:alldone 
echo WDBK 5 has been remove... 
TIMEOUT /T 1 
exit 
rem :remove07 
rem :remove 
rem :remove 

Antwort

1

Das Problem ist nicht mit dem :CheckOS Abschnitt, aber mit dem :Fincentric check Abschnitt. Die if-Anweisung ist unvollständig und weist einige Fehler auf. Diese Zeile:

if exist c:\%PROGRAMFILES(X86)%\Fincentric 

wird

if exist c:\C:\ProgramFiles (x86)\Fincentric 

Entfernen Sie die führenden c: und setzen Sie die Pfadnamen in Anführungszeichen erweitern, um sicherzustellen, dass es kein Problem mit Leerzeichen hat. Es sollte wie folgt aussehen:

if exist "%PROGRAMFILES(X86)%\Fincentric" (
    echo do stuff 
    echo do more stuff 
) 

falsche Anführungszeichen um Ihren Weg ist auch Teil des gleichen Problem, das Sie mit Ihrem del Linie haben. Der andere Teil ist, dass Sie das Verkettungssymbol & (Ampersand) zwischen den beiden Befehle sind vermisst:

del /S /Q "c:\Program Files\fincentric" & goto alldone 

Auch Abschnitt Etiketten werden nur zu einem Raum erkannt, also ist :Fincentric check wirklich nur als :Fincentric erkannt zu werden. Dies sieht nicht so aus, als würde es Ihnen derzeit Probleme bereiten, aber möglicherweise könnte es in einigen Situationen passieren. Nur um sicher zu gehen, würde ich es umbenennen und den Raum (etwas Linie :Fincentric_Check oder :FincentricCheck)

entfernen
Verwandte Themen