2016-04-04 3 views
1

Мне нужно удалить программу со всех моих компьютеров филиала (32 бит & 64 бит) и переустановить и обновить версию программного обеспечения с помощью исправления реестра для всей машины. не кажется сложным, но я пытаюсь использовать пакетный файл (возможно, самый простой) для этого, и я застрял на проверке части версии ОС.Удаление программного обеспечения/новая установка с использованием командного файла

Могу ли я получить помощь? вот партия; Несколько указателей;

  • оператор проверка ошибки потому, что я получаю ошибку по установке окон
  • удалить заявление каталогов не работает, не знает, почему так я могу просто сбросить его.

Код:

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 

ответ

1

Проблема заключается не в разделе :CheckOS, но с секцией :Fincentric check.

Заявление if не заполнено и имеет некоторые ошибки. Эта линия:

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

расширится

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

Снимите ведущую c: и поставить имя путь в кавычки, чтобы гарантировать, что это не проблема с пробелами. Он должен выглядеть следующим образом:

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

Неверные кавычки вокруг вашего пути также является частью одной и той же проблемы у вас с вашей del линии. Другая часть является то, что вы пропустили символ конкатенации & (амперсанд) между вашими двумя командами:

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

Кроме того, раздел метки распознаются только до места, поэтому :Fincentric check действительно только признается в качестве :Fincentric. Это не похоже на то, что это в настоящее время вызывает у вас какие-либо проблемы, но это может быть в некоторых ситуациях. Чтобы быть в безопасности, я бы переименовал его и убрал пространство (что-то линия :Fincentric_Check или :FincentricCheck)

Смежные вопросы