@echo off & setlocal set "Datei=C:\Programme\SolidWorks\SLDWORKS.exe" set "GetV=%Temp%\GetV.vbs" set "Logfile=I:\inet\CAD-Infos\WS-Infos\%computername%_%username%_SWX-Version.txt rem vbs-Datei erstellen: echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%" echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%" echo For Each objFile in colFiles: WScript.Echo objFile.Version: Next>>"%GetV%" rem vbs-Datei ausführen set Version= for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i" rem in Version steht jetzt die komplette SWX-Version in der Form 15.5.0.0119 rem Jetzt will ich daraus die eigentliche Hauptversion 2007 bekommen (=15 + 1992), brauche also die erste Zahl aus der "Version" if defined Version goto GetMainVersion goto Logfile :GetMainVersion del "%GetV%" rem Zerlegen der Version über neues Script set "GetV=%Temp%\GetV2.vbs" echo Dim MyString, MyArray, Msg>"%GetV%" echo MyString = "%Version%">>"%GetV%" echo MyArray = Split(MyString, ".", -1, 1)>>"%GetV%" echo MyArray = Split(MyString, ".", -1, 1)>>"%GetV%" echo WScript.echo MyArray(0)+1992>>"%GetV%" rem ausführen for /f %%i in ('cscript //nologo "%GetV%"') do set "MainVersion=%%i" rem --------------------------- :logfile if defined Version echo %Datei% - Version %Version% > "%logfile%" if defined MainVersion echo Hauptversion %Mainversion% >> "%logfile%" goto :END :END type "%logfile%" del "%GetV%"