Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Versionsnummer von OCX per batch auslesen und drucken

Frage Entwicklung Batch & Shell

Mitglied: NetMare1

NetMare1 (Level 1) - Jetzt verbinden

03.04.2007, aktualisiert 05.04.2007, 11954 Aufrufe, 6 Kommentare

Hallo,

mmh - grade angemeldet und schon ne Frage (oder war das der Grund meiner Anmeldung?! ;))

Es geht um folgendes:

Ich kopiere und regestriere per batch ein paar ocx-Dateien per folgedem Ausdruck:

z.B.:
copy MSCAL.OCX c:\windows\system32\
regsvr32 c:\windows\system32\MSCAL.OCX
.
.
.


Ich möchte (nachdem alle ocx Dateien regestriert sind die im Batch festgelegt sind) die aktuelle Versionsnummer der regestrierten Batchdateien anzeigen lassen und ausdrucken zu Dokumentationszwecken.

Frage ist:
Wie lese ich die Versionsnummer der ocx Dateien per batch aus und zeige sie dem Benutzer an und lasse diese dann ausdrucken?

Vieleicht kann mir da jemand helfen?!
Wie gesagt: es geht NICHT um das Datum der Dateien sondern um die Version.

Hoffe mal auf Antwort.

Gruß aus dem schönen Niedersachsen ;)
Mitglied: bastla
04.04.2007 um 17:31 Uhr
Hallo NetMare1 und (ein etwas verspätetes) Willkommen im Forum!

Für das Auslesen könnte ich eine kombinierte Batch/VB-Script-Lösung anbieten:
01.
@echo off & setlocal 
02.
set "Datei=c:\windows\system32\MSCAL.OCX" 
03.
set "GetV=%Temp%\GetV.vbs" 
04.
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%" 
05.
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%" 
06.
echo For Each objFile in colFiles: WScript.Echo objFile.Version: Next>>"%GetV%" 
07.
set Version= 
08.
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i" 
09.
if defined Version echo %Datei% - Version %Version% 
10.
del "%GetV%"
Kurze Beschreibung: Das konkrete Auslesen erledigt eine temporäre VBS-Datei, die direkt im Batch erzeugt wird. An diese Script-Datei wird als Argument beim Aufruf die zu prüfende .ocx-Datei mit komplettem Pfad übergeben. Der Rückgabewert wird in der Variablen %Version% zur weiteren Verwendung gespeichert. Abschließend wird die Script-Datei gelöscht.

Die oben stehende Version ist (zum Testen) als "stand-alone"-Variante gedacht. Wenn mehrere Dateien überprüft werden sollen, könntest Du um die Zeilen "set Version=" bis "if defined ..." eine Schleife bauen, die jeweils den Dateinamen (aus einer ohnehin vorhandenen Liste?) liefert.

Dann würde es sich auch anbieten, die Ausgabe in eine Textdatei umzuleiten und diese dem Benutzer per Windows-Editor zur Ansicht bzw zum Ausdruck zur Verfügung zu stellen.

Grüße
bastla
Bitte warten ..
Mitglied: NetMare1
04.04.2007 um 17:44 Uhr
Hi bastla,

danke fuer das Willkommen...

...und die geniale Loesung!

Hast mir sehr geholfen!

Gruss,
NetMare

PS: geloest :D
Bitte warten ..
Mitglied: bastla
04.04.2007, aktualisiert 01.08.2013
Hallo NetMare1!

Freut mich, wenn's hilft.

Eine Anpassung möchte ich noch vorschlagen:
01.
for /f "delims=" %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i"
sorgt dafür, dass die Versionsinfo nicht durch zB Leerstellen auseinandergerissen wird (so habe ich gerade eben beim Testen folgende Versionsnummer - einer anderen .ocx-Datei - vorgefunden: 1, 0, 0, 1).

Grüße
bastla
Bitte warten ..
Mitglied: Soidberg
04.04.2007 um 23:37 Uhr
Sehr interessante Lösung.

Vielen Dank für diesen Beitrag, kommt mir gerade passend.

Gruß Soidberg
Bitte warten ..
Mitglied: Biber
05.04.2007 um 00:20 Uhr
Der Vollständigkeit halber (auch ich würde bastla's Variante vorziehen):

Es gibt naturlich auch diverse Konsolen-Utilities, die diese Versionsnummer anzeigen koennen.
Ein paar waren im Lauf der Zeit in der M$-ResKits dabei und tragen Namen wie FileVer.exe, FVer.exe oder so ähnlich.

Die M$-FileVer.exe hätte unter Umständen noch den Charme, dass damit auch Massenverarbeitung (also rekursive Abarbeitung von Dateien und Unterverzeichnissen) machbar ist und das zweifelhafte "Zusatzfeature", dass eine (erlaubte) nicht-konforme Versionsnummer wie von bastla gepostet automatisch geradegezogen wird.
Beispiel (die Datei GetOCXVersion.bat ist bastla's Skript, nur mit Inputparameter %1):
01.
>for %i in (c:\windows\system32\t*.ocx) do @f:\Administrator\GetOCXVersion.bat %i 
02.
c:\windows\system32\tabctl32.ocx - Version 6.00.9043 
03.
c:\windows\system32\tdc.ocx - Version 1, 3, 0, 3130 
04.
 
05.
>FileVer -bad c:\windows\system32\t*.ocx 
06.
W32i   DLL ENU       6.0.90.43 shp c:\windows\system32\tabctl32.ocx 
07.
W32i   DLL ENU      <b>1.3.0.3130</b> shp c:\windows\system32\tdc.ocx
"Zweifelhaft" also deshalb, weil man/frau offensichtlich SEHR aufpassen muss, wenn eine Versionsnummer ermittelt wird.
Je nach (M$-)Tool kann "1.3.0.3130" ODER "1, 3, 0, 3130" zurueckgegeben werden.

Gruss
Biber
Bitte warten ..
Mitglied: Biber
05.04.2007 um 18:19 Uhr
....wenn bastla schon solche Steilvorlagen liefert, dann sollen alle etwas davon haben...

01.
::--- snipp GetFileVer.Bat -- von Biber modifizierter bastla-Schnipsel 
02.
@echo off & setlocal 
03.
If "%*"=="" (echo Syntax: %~n0 [Lw:\Pfad\] Dateiname ^(Wildcards erlaubt^) &&  goto :eof) 
04.
set "GetV=%Temp%\GetV.vbs" 
05.
echo Set objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%" 
06.
echo Set colFiles=objWMIService.ExecQuery ("SELECT * FROM CIM_Datafile WHERE Name='"^&Replace(WScript.Arguments(0),"\","\\")^&"'")>>"%GetV%" 
07.
echo For Each objFile in colFiles: WScript.Echo Replace(Replace(objFile.Version,",",".")," ",""): Next>>"%GetV%" 
08.
For %%i in (%*) do call :getVers "%%i" 
09.
del "%GetV%"  & goto :eof 
10.
:getvers 
11.
set "Version=" & for /f %%i in ('cscript //nologo "%GetV%" "%~1"') do set "Version=%%i" 
12.
if defined Version echo %~1 - Version %Version% 
13.
::---snapp GetFileVer.bat
In Aktion:
01.
>f:\administrator\GetFileVer.bat %windir%\system32\t*.ocx %windir%\system32\cs*.exe 
02.
C:\WINDOWS\system32\tabctl32.ocx - Version 6.00.9043 
03.
C:\WINDOWS\system32\tdc.ocx - Version 1.3.0.3130 
04.
C:\WINDOWS\system32\cscript.exe - Version 5.6.0.8820 
05.
C:\WINDOWS\system32\csrss.exe - Version 5.1.2600.2180(xpsp_sp2_rtm.040803-2158)
Frohe Ostern
Biber
Bitte warten ..
Ähnliche Inhalte
Windows Vista
Powershellscript zum Auslesen von Druckern
gelöst Frage von ghammerWindows Vista16 Kommentare

Hallo, Dömane: Server 2012 Clients Vista, Windows 7 Ich hab hier ein Powershellscript erstellt das mir die Drucker auf ...

Batch & Shell
Mit batch zeilen auslesen
gelöst Frage von keksegrillerBatch & Shell2 Kommentare

Hallihallo, ich fange gerade an mit batch-Dateien zu arbeiten und komme trotz stundenlangem ausprobieren und googlen leider nicht mehr ...

Batch & Shell
Batch: Textdatei Zeilenweise auslesen
gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell
Per Batch Client auslesen
gelöst Frage von 103148Batch & Shell14 Kommentare

Hallo, ich möchte gerne paar Infos von unseren Clients auslesen. Dazu würde ich folgenden Befehl im Anmelde Script nutzen: ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 20 StundenMicrosoft Office8 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 22 StundenDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 23 StundenSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner13 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...