Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Dateiversion abfragen per Batch Datei

Frage Entwicklung Batch & Shell

Mitglied: JOML

JOML (Level 1) - Jetzt verbinden

12.11.2007, aktualisiert 18.10.2012, 20413 Aufrufe, 10 Kommentare

Hallo allerseits,

Kann man per Batch Datei (cmd) eine Dateiversion abfragen...?

So nach der Art "If exist.... goto END"

Sinn ist es, dass das Script nur ganz ablauft, wenn eine spez. Dateiversion (nicht Timestamp) vorhanden ist.
Irgendwie muss man doch die Dateiattribute abfragen können..?


Vielen Dank für Eure Hilfe

Gruss
JOML
Mitglied: bastla
12.11.2007, aktualisiert 18.10.2012
Hallo JOML2005!

Vielleicht hilft Dir ja dieser Beitrag: Versionsnummer von OCX per batch auslesen und drucken

Grüße
bastla
Bitte warten ..
Mitglied: JOML
13.11.2007 um 12:06 Uhr
Hallo bastla,

Ja und Nein... komme leider nicht weiter

Ich müsste das ganze noch in eine "IF" abfrage einbauen.

Das heisst zuerst erkennen der Version, danach "..wenn Version xy, dann gehe zu END.."

Ist das möglich...??

Vielen Dank für Deine Hilfe
PS: Das Script betreffend user passwörter zurücksetzten im AD funktioniert bestens..danke

Gruss
JOML
Bitte warten ..
Mitglied: Biber
13.11.2007 um 12:16 Uhr
Moin JOML,

magst Du uns denn mitteilen, welche Variante Du bis hierher verwendest?
Die meisten im Parallelthread haben doch gegen Ende eine Zeile
01.
... 
02.
if defined Version echo %~1 - Version %Version%
...oder ähnlich.

Wieso kannst Du nicht an dieser Stelle einbauen:
01.
if defined Version if [%Version%]==[4.7.32.5] goto :uralteGurke 
02.
if defined Version if [%Version%]==[4.7.50.0] goto :neuerAlsMeine
Bitte erläutere Dein Problem doch etwas genauer.

Danke
Biber
Bitte warten ..
Mitglied: JOML
13.11.2007, aktualisiert 18.10.2012
[http://www.administrator.de/forum/versionsnummer-von-ocx-per-batch-auslesen-und-drucken-55738.html
Versionsnummer von OCX per batch auslesen und
drucken]

Hallo Biber,

wollte es mit der obenstehenden Lösung versuchen.
Es geht darum:
Als erstes muss herausgefunden werden ob eine spez. SW Version (als Beispiel NERO 6.3.3.) installiert ist. Darum der check der Fileversion.
Wenn diese Version installiert ist, darf nichts mehr passieren.... das heisst also "goto END".
Ist aber eine andere Version installiert, soll die Batchdatei bis zum Schluss durchlaufen.

So hatte ich mir das in etwa vorgestellt..

Die Batchdatei besteht schon.. jetzt muss ich nur noch den Teil mit der Fileversion und dem "IF" irgendwie hinbekommen...

Vielen Dank

Gruss
JOML
Bitte warten ..
Mitglied: Biber
13.11.2007 um 13:22 Uhr
Moin JOML,

dann nimm (falls Du mit der FileVer.exe arbeitest) folgende Zeile bzw zwei Zeilen im Batch:
a) CMD-Prompt
01.
for /f "tokens=2 delims== " %i in ('ftype^|find "Nero.exe"') do @for /f "tokens=5" %j in ('filever %~si /b') do @echo Set version=%j 
02.
Set version=6.6.0.16
b) Batch
01.
.. 
02.
for /f "tokens=2 delims== " %%i in ('ftype^|find "Nero.exe"') do set nero=%%~si 
03.
if defined nero for /f "tokens=5" %%j in ('filever %nero% /b') do Set version=%j 
04.
if defined version if [%version%] LEQ [6.3.3] goto :shitHappens
Bitte warten ..
Mitglied: JOML
13.11.2007 um 14:45 Uhr
b) Batch
01.
.. 
02.
> for /f "tokens=2 delims== " %%i in 
03.
> ('ftype^|find 
04.
> "Nero.exe"') do set 
05.
> nero=%%~si 
06.
> if defined nero for /f "tokens=5" 
07.
> %%j in ('filever %nero% /b') do Set 
08.
> version=%j 
09.
> if defined version if [%version%] LEQ 
10.
> [6.3.3] goto :shitHappens 
11.
> 

Hallo Biber,

Vielen Dank.

Da ich das Tool "FileVer.exe" noch nicht kenne, habe ich leider noch Fragen.
1. Muss ich das Tool noch in der Batchdatei irgendwie aufrufen..? Oder wie wird erkannt ob das Tool da ist oder nicht..?
2. Muss kein Pfad zur Nero.exe angegeben werden..? z.B c:\program files\Nero\Nero.exe
3. [6.3.3] goto > Gebe ich hier ein, welche version da sein sollte..?

Sorry für die vielen Fragen.. bin leider noch nicht so ein Crack in Sachen Batch etc.

Danke nochmals für Eure Hilfe.

Gruss
JOML
Bitte warten ..
Mitglied: Biber
13.11.2007 um 15:01 Uhr
Moin JOML,

1. die FileVer.exe ist nicht automatisch mit auf dem Rechner - die lässt sich bei M$ herunterladen als Bestandteil eines ResKits. Aber ebenso geht bastlas Skriptvariante im o.a. Thread.
2. Nein, der Pfad wird implizit ermittelt. Probier es aus... wenn Nero installiert ist, bekommst Du ein gültiges Ergebnis. Evtl noch "Find /i" statt nur "find", aber nach meinen Tests ist IMMER eine "Nero.exe" mit dabei, die genau so geschrieben wird (großes "N", kleines "ero.exe").
3. Jepp.

Grüße
Biber
Bitte warten ..
Mitglied: JOML
13.11.2007 um 17:01 Uhr
Hallo zusammen,

Habs jetzt die Variante genommen:
01.
set "Datei=C:\Progra~1\Muster\muster.exe" 
02.
set "GetV=%Temp%\GetV.vbs"  
03.
echo Set  objWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")>"%GetV%" 
04.
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%" 
05.
set Version= 
06.
for /f %%i in ('cscript //nologo "%GetV%" "%Datei%"') do set "Version=%%i" 
07.
if defined Version echo %Datei% - Version %Version% 
08.
if defined Version if [%Version%]==[15.1.6.65] goto :END 
09.
del "%GetV%"
Und es scheint zu funktionieren.. oder sieht da noch jemand ein Fehler im Script ?
Nachtrag: Es funktioniert BESTENS !!

Noch zwei Fragen:
Für was steht am Anfang "setlocal" (rechts von @echo off &)
Das Zeichen ^ hat welche Funktion..?

Vielen vielen Dank an alle.
Absolut geniale Hilfe hier im Forum.

Gruss
JOML
Bitte warten ..
Mitglied: Biber
13.11.2007 um 18:50 Uhr
Moin JOML,

Noch zwei Fragen:
Für was steht am Anfang "setlocal" (rechts von @echo off &)
Das Zeichen ^ hat welche Funktion..?

"Setlocal" bedeutet, dass alle Variablen, die während der Ausführung dieses Batches neu definiert werden (mit "Set var=bla")
nur lokal, nur solange der Batch läuft existiieren.

Und Dass Du so keine bereits vorhandenen unabsichtlich überschreiben kannst (z.B. %computername% oder %username%) und dass keine Variblen-Trümmer mehr rumliegen, wenn der Batch beendet ist.

Das Caret (^) "maskiert" Zeichen, die ansonsten im Batch als Steuerzeichen besondere Bedeutung hätten.
Sagt also quasi "Hey, wenn Du das nächste Zeichen liest, liebe CMD.exe, halt die Füße still, das soll dieses Mal nur ein ganz normaler Buchstabe sein. Nicht sofort losrennen.".

Ohne das Caret würden die beiden Befehle IN DER Klammer oben ausgeführt werden, bevor überhaupt die FOR-Anweisung selbst initialisiert ist.
Durch das Caret sage ich also:
- Mach mir eine FOR-Anweisung mit whatever in der Klammer
- diese FOR-Anweisung wird erstmal syntaktisch geprüft OHNE das Zeug in der Klammer
- dann wird das Zeug in der Klammer syntaktisch geprüft und ausgeführt und zwar von einer neuen CMD.exe-Instanz.
- die neue Instanz führt den Aufruf OHNE das Caret aus.

Grüße und danke für das nette Feedback
Biber

P.S. Habe oben den Code in gleichnamige Tags gesetzt.
Verbesserungsvorschlag:
del "%GetV%" ---> soll eigentlich immer gemacht werden. also VOR der Entscheidung richtige/falsche Version und somit auch vor "Goto :END" oder "geh einfach weiter".
Bitte warten ..
Mitglied: JOML
13.11.2007 um 18:59 Uhr
Alles klar.. danke für die Info

Gruss
JOML
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Nummerierte dateien lücke finden .batch (2)

Frage von franky89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

VB for Applications
gelöst Abfrage, ob Datei mit Variablem Wert existiert (12)

Frage von Anrion zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...