Avatar billede jnoval Nybegynder
01. juli 2003 - 10:01 Der er 14 kommentarer og
1 løsning

Kontrol af version af program

Hvordan kan jeg fra en commandline kontrollere om versionen af et program er den rigtige?
Baggrund:
Jeg har et program jeg installerer fra et domain loginscript. Hvis brugeren har programmet installeret så skal der kun installeres konfiguration. Dette virker fint, men nu skal programmet opgraderes, derfor skal scriptet også kontrollere om det er den nye eller gamle version der er installeret.
Programmet skal afinstalleres inden den nye version installerer.
Hvis jeg i windows højre klikker på filen pview.exe kan jeg i properties se hvilken version det er. Det er denne oplysning jeg gerne vil henytte.
Et alternativ kunne være at checke på fildato, men det kan jeg heller ikke finde ud af.
Jeg skal måske vile nævne at scriptet skal kunne virke på både windows NT og 2000.

Her er mit batch script:

@echo off
if not exist "c:\program files\ptc\productview\pview.exe" goto install
! if version is old then goto uninstall
goto config

:uninstall
echo uninstall old ProductView. Please wait
msiexec /x G:\install_lib\programmer\cad\ProductView\silent-installation\productView.msi /q
rd "C:\Program Files\PTC\ProductView" /s /q

:install
echo installation af ProductView. Please wait
msiexec /i G:\install_lib\programmer\cad\ProductView\silent-installation\productView.msi /q INSTALLDIR="c:\program files\ptc\productview" ALLUSERS=1

:config
echo copy config. Please wait
SET COPYCMD=/Y
xcopy /S /Q G:\install_lib\programmer\cad\ProductView\silent-installation\settings\*.* "c:\program files\ptc\productview\*.*"
regedit /s "c:\program files\ptc\productview\pvconfig.reg"

:end
exit
Avatar billede riversen Nybegynder
01. juli 2003 - 10:06 #1
prøv med kixtart loginscript (www.kixtart.org). Der er en funktion "GETFILEVERSION( "file name", "versionfield" )
Avatar billede riversen Nybegynder
01. juli 2003 - 10:06 #2
svar
Avatar billede riversen Nybegynder
01. juli 2003 - 10:07 #3
der er også en GETFILETIME( "file name" ) funktion
Avatar billede jnoval Nybegynder
01. juli 2003 - 11:52 #4
Ja det er jo en mulighed med kixtart, men jeg er ude efter en løsning helst uden at skulle installere ekstra software på alle clienterne, og det skal man vist med kix. Jeg skal indrømme at jeg ikke kender meget til kix, men jeg har da hørt om det, og også set lidt på det.
Avatar billede riversen Nybegynder
01. juli 2003 - 12:18 #5
nej du skal ikke
Avatar billede jnoval Nybegynder
01. juli 2003 - 12:51 #6
riversen> Ok. Det kan være at din løsning bliver den jeg vælger, men lad os se om der ikke er nogen der har en anden løsning. Du skal i alle tilfælde have tak.
Avatar billede riversen Nybegynder
01. juli 2003 - 13:39 #7
du kan jo se om du kan finde noget her:
http://users.cybercity.dk/~bse26236/batutil/help/INDEX.HTM

hvis ikke så skal det et 3. parts program til
Avatar billede Slettet bruger
01. juli 2003 - 15:59 #8
Her er et eksempel med fildato.

@echo off
dir c:\test.txt | find "27-06-2003" >nul
if errorlevel 1 goto e1
if errorlevel 0 goto e2
goto end

:e1
echo Fildato er IKKE 27-06-2003
goto end

:e2
echo Fildato er 27-06-2003
goto end

:end

:-)
Avatar billede jnoval Nybegynder
01. juli 2003 - 16:05 #9
tpo> ja det kunne være en løsning. Når man nu bruger >nul vil det sige at der ikke kommer noget output? Eller er det det der giver muligheder for at bruge errorlevel?
Avatar billede Slettet bruger
01. juli 2003 - 16:16 #10
>nul er bare for at undgå output.
Jeg har lavet det lidt primitivt, for at sikre at det kan køre på en NT 4.0 (jeg har ikke NT 4.0 instaleret på nuværende).
Du skal nok lige kontrolere outputtet fra dir kommandoen, det er ikke sikkert at datoformatet er som i mit eksempel.
:-)
Avatar billede jnoval Nybegynder
01. juli 2003 - 16:18 #11
tpo> er det muligt at sikre at filformatet altid er det samme? Ved f.eks. at ændre en local enviroment der kun gælder i dette script og ikke globalt?
Avatar billede Slettet bruger
01. juli 2003 - 16:24 #12
Nej, du bliver nødt til at kontrolere alle dine klienter, men er de sat op til at bruge dansk, burde der ikke være forskel.
:-)
Avatar billede jnoval Nybegynder
03. juli 2003 - 14:48 #13
Så fandt jeg en løsning på mit script.
Fra microsoft kan man hente et lille program der lan vise version af en fil.
http://download.microsoft.com/download/ie4095/util10/1/WIN98/EN-US/GetVers.exe
Mit script kom derfor til at se således ud:

cls
@echo off
if "%ProgramFiles%" == "" set ProgramFiles=c:\Program files
set Installlib=\ptc\productview\
set setuplib=\\server\appl\cad\productview\
if not exist "%ProgramFiles%%Installlib%pview.exe" goto install
%setuplib%getvers "%ProgramFiles%%Installlib%pview.exe" | find "6,4,4,32" >nul
if errorlevel 1 goto uninstall
if errorlevel 0 goto config
rem memo errorlevel 1=not ok, 0=ok
goto end

:uninstall
echo uninstall old ProductView. Please wait
msiexec /x %setuplib%install\productView.msi /q
rd "%Programfiles%%Installlib%" /s /q

:install
echo installation of ProductView. Please wait
msiexec /i "%setuplib%install\productView.msi" /q INSTALLDIR="%Programfiles%%Installlib%" ALLUSERS=1

:config
echo copy config. Please wait
SET COPYCMD=/Y
xcopy /S /Q "%setuplib%\settings\*.*" "%ProgramFiles%%Installlib%"
regedit /s "%ProgramFiles%%Installlib%pvconfig.reg"

:end
exit

Løsningen med dato check fungerede ikke, da der er forskel i dato opsætninmgen på de 35 pc'er det skal installeres på.

Point går til tpo da han satte mig på sporet af | find muligheden.
tpo send lige et svar så du kan få point.
Avatar billede Slettet bruger
03. juli 2003 - 15:29 #14
Så kunne pipe | komandoen dog bruges til noget. Jeg havde ellers lige instaleret en NT 40 for at teste med den. Det var nu godt at få genopfrisket noget af den gamle NT 4.0 lærdom.

:-)
Avatar billede jnoval Nybegynder
03. juli 2003 - 18:50 #15
Jeg ser nu frem til at vi slipper af med NT4.0.
Det der drillede mig var det output der kom fra pipe¨når echo var on F.eks. ved dir text.txt | find "22-04-2003" >nul vises som:
dir text.txt | find "22-04-2003" 1>nul
Jeg afledte at 1>nul var errorlevel 1. Jeg ved ikke hvorfor den skriver det således.
Men det med dato blev for kompliceret.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester