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 Dateiversion abfragen per Batch Datei

Mitglied: JOML

JOML (Level 1) - Jetzt verbinden

12.11.2007, aktualisiert 18.10.2012, 22287 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
[https://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
Batch-Datei: Benutzer-Abfrage
gelöst Frage von Axel90Batch & Shell7 Kommentare

Hallo zusammen! Ich habe bei Google keine Lösung für mein Anliegen gefunden: Ich möchte in einer Batch-Datei (Login-Sequenz) eine ...

Batch & Shell

Problem mit "username" abfrage in Batch Dateien

gelöst Frage von KriAITBatch & Shell5 Kommentare

Hallo, ich habe eine Batch-Datei erstellt in der ein Ordner auf dem Desktop erstellt werden soll. Der Batch soll ...

Batch & Shell

Batch Datei soll Erstelldatum einer Datei abfragen und nur dann eine Installation starten

gelöst Frage von KayManHeyBatch & Shell9 Kommentare

Hallo Administratoren, ich habe mich nun hier registriert weil ich mit meinem Problem nicht mehr wirklich weiterkomme. Libre Office ...

Batch & Shell

Batch - Datei zum abfangen einer Datei inkl. Abfrage

Frage von mmaaxxiiBatch & Shell9 Kommentare

Guten Tag, da ich bisher noch nichts vergleichbares gefunden habe und blutiger Anfänger in diesem Gebiet bin wende ich ...

Neue Wissensbeiträge
Router & Routing

Endlich: Reines Kabel-TV Modem in D erhältlich !

Information von aqui vor 1 TagRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Netzwerkgrundlagen
The Illustrated TLS Connection
Information von Lochkartenstanzer vor 2 TagenNetzwerkgrundlagen

Moin, Unter findet man eine gelungene Erläuterung von TLS. Fördert sehr das verständnis darüber, was da passiert. lks

Windows 10

Zuverlässiger Remove-AppxProvisionedPackage Ausführen in W10-1803

Tipp von NetzwerkDude vor 3 TagenWindows 104 Kommentare

Moin, Remove-AppxProvisionedPackage hat in 1709 recht zuverlässig funktioniert, in 1803 ist es leider so das es gerne mail failed ...

LAN, WAN, Wireless
Erfahrung mit dem tplink eap115-wall
Erfahrungsbericht von fisi-pjm vor 4 TagenLAN, WAN, Wireless

Die Hintergründe Als ausgebildeter Fisi und ambitionierter "Hobby ITler" bin ich Netzwerktechnisch immer auf der Suche nach "schönen" Lösungen ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Netzwerklaufwerk verbinden nicht möglich
gelöst Frage von SteiniMNetzwerkmanagement13 Kommentare

Hallo Leute, ich bin neu hier und brauche eure Hilfe. Danke schon mal im Voraus. Ich habe folgendes Problem: ...

Apache Server
Webserver überlastet - wie entlasten?
Frage von coltseaversApache Server13 Kommentare

Hi ho, ich hoste aktuell für nen Kunden eine Webseite basierend auf Wordpress. Die Seite liegt auf einem Debian ...

Router & Routing
Endlich: Reines Kabel-TV Modem in D erhältlich !
Information von aquiRouter & Routing9 Kommentare

Mit dem Technicolor TC4400-EU Modem sind nun auch Breitband Router ohne integriertes Modem oder Firewalls wie z.B. die pfSense ...

Windows 10
Backup von NAS auf externe Festplatte in verschiedenen Räumen
Frage von kvnbucherWindows 109 Kommentare

Guten Tag Ich habe vor kurzem ein Synology NAS DS218+ installiert und sämtliche Daten von meinen Computern auf das ...