Die Eigenschaften einer Datei mit einer Batchdatei auslesen
Eigenschaften eine Datei per cmd auslesen und weiterverarbeiten
Hallo
wenn ich mir z.B. bei der Datei kentbcli.exe die eigenschaften anzeigen lasse, habe ich mehrere Registerkarten
(Allgemein, Version, Kompatibilität, Sicherheit, Dateiinfo)
unter dem Register Version bekomme ich z.B. die Versionsnummer angezeigt.
Ist es möglich diese Anzeige per cmd auszulesen????
so in der Art:
dir kentbcli.exe /Version
und bekomme dann angezeigt:
Version:4.00.54
oder so ähnlich.
vielen Dank schon mal im voraus
mfg
Farmer
Hallo
wenn ich mir z.B. bei der Datei kentbcli.exe die eigenschaften anzeigen lasse, habe ich mehrere Registerkarten
(Allgemein, Version, Kompatibilität, Sicherheit, Dateiinfo)
unter dem Register Version bekomme ich z.B. die Versionsnummer angezeigt.
Ist es möglich diese Anzeige per cmd auszulesen????
so in der Art:
dir kentbcli.exe /Version
und bekomme dann angezeigt:
Version:4.00.54
oder so ähnlich.
vielen Dank schon mal im voraus
mfg
Farmer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 29923
Url: https://administrator.de/contentid/29923
Ausgedruckt am: 22.11.2024 um 09:11 Uhr
13 Kommentare
Neuester Kommentar
Keine Antwort = Es ist nicht möglich ?
Ich würde auch gerne nicht nur den Dateinamen z.B mit
dir C:\pfadZuDenDateien /B >> dateiListe.txt
sondern auch die Dateieigenschaften, insbesondere den Kommentar in die Datei schreiben. Irgendwie ist das recht schwer zu finden ;)
Wäre schön wenn jemand etwas genaueres weiß.
Ich würde auch gerne nicht nur den Dateinamen z.B mit
dir C:\pfadZuDenDateien /B >> dateiListe.txt
sondern auch die Dateieigenschaften, insbesondere den Kommentar in die Datei schreiben. Irgendwie ist das recht schwer zu finden ;)
Wäre schön wenn jemand etwas genaueres weiß.
Moin alle,
die Formulierung "Geht nicht" im Zusammenhang mit Batch-Skripting solltet ihr in diesem unseren Forum sparsamer verwenden...
Die Einschränkung ist allerdings, dass die so genannten Extended File Properties naturgemäß nur unter NTFS-Filesystemen zur Verfügung stehen und deshalb auch nur den Skript-Sprachen zugänglich sind, die dieses File-System kennen. Die CMD.exe als Command-Interpreter fällt da raus - mit der PowerShell als Shell wird es wieder möglich sein.
Mögliche Variante vom CMD-Prompt aus ist ein Billich-VBSkript.
Beispiel:
Dieser Schnipsel listet beim Aufruf vom CMD-Prompt mit:
...alle Extended File Properties der Dateien in "d:\MeineMusi" auf.
HTH
Biber
die Formulierung "Geht nicht" im Zusammenhang mit Batch-Skripting solltet ihr in diesem unseren Forum sparsamer verwenden...
Die Einschränkung ist allerdings, dass die so genannten Extended File Properties naturgemäß nur unter NTFS-Filesystemen zur Verfügung stehen und deshalb auch nur den Skript-Sprachen zugänglich sind, die dieses File-System kennen. Die CMD.exe als Command-Interpreter fällt da raus - mit der PowerShell als Shell wird es wieder möglich sein.
Mögliche Variante vom CMD-Prompt aus ist ein Billich-VBSkript.
Beispiel:
' ---snipp GetExtFilePropsInFolder.vbs
Dim arrHeaders(34)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Wscript.arguments(0))
For i = 0 to 33
arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i)
Next
For Each strFileName in objFolder.Items
For i = 0 to 33
Wscript.echo i & vbtab & arrHeaders(i) _
& ": " & objFolder.GetDetailsOf(strFileName, i)
Next
Next
' ---snapp GetExtFilePropsInFolder.vbs
Dieser Schnipsel listet beim Aufruf vom CMD-Prompt mit:
cscript //nologo GetExtFilePropsInFolder.vbs d:\MeineMusi
HTH
Biber
Gerne, wobei ich ja eigentlich nichts selber gelöst habe ;)
Ich brauchte eine Textdatei im Format:
Also lese ich nur die beiden benötigten Felder aus und schreibe sie in eine Zeile:
Aufrufen tue ich das Ganze mit:
(was ich in eine bat-Datei gepackt habe)
Also keine eigene Leistung, sondern nur Verstümmelung deines Skriptes. ;)
Zwar nicht wirklich elegant aber für meine Zwecke vollkommen ausreichend. Eigentlich wäre es schön wenn ich die einzelnen Strings noch bearbeiten könnte (Abschneiden der Dateiendungen), aber das übersteigt im Moment das Zeit <->Nutzen Verhältnis.
Also: Vielen Dank nochmal !
Ich brauchte eine Textdatei im Format:
dateiname kommentar
dateiname kommentar
....
Also lese ich nur die beiden benötigten Felder aus und schreibe sie in eine Zeile:
Dim arrHeaders(34)
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Wscript.arguments(0))
arrHeaders(0) = objFolder.GetDetailsOf(objFolder.Items, 0)
arrHeaders(14) = objFolder.GetDetailsOf(objFolder.Items, 14)
For Each strFileName in objFolder.Items
Wscript.echo objFolder.GetDetailsOf(strFileName, 0) &" "& objFolder.GetDetailsOf(strFileName, 14)
Next
Aufrufen tue ich das Ganze mit:
cscript //nologo NameDesSkripts.vbs c:\PfadZuDenDateien >> Dateiliste.txt
Also keine eigene Leistung, sondern nur Verstümmelung deines Skriptes. ;)
Zwar nicht wirklich elegant aber für meine Zwecke vollkommen ausreichend. Eigentlich wäre es schön wenn ich die einzelnen Strings noch bearbeiten könnte (Abschneiden der Dateiendungen), aber das übersteigt im Moment das Zeit <->Nutzen Verhältnis.
Also: Vielen Dank nochmal !
Hallo sub273!
Entschuldige, wenn ich hier noch reinplatze, aber vielleicht wäre das "Zeit <->Nutzen Verhältnis" für einen Test der folgenden Variante nicht ganz so übel :
Grüße
bastla
Entschuldige, wenn ich hier noch reinplatze, aber vielleicht wäre das "Zeit <->Nutzen Verhältnis" für einen Test der folgenden Variante nicht ganz so übel :
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(Wscript.arguments(0))
For Each strFileName in objFolder.Items
strName = objFolder.GetDetailsOf(strFileName, 0)
If InstrRev(strName, ".") > 1 Then strName = Left(strName, InstrRev(strName, ".") - 1)
Wscript.echo strName & " " & objFolder.GetDetailsOf(strFileName, 14)
Next
Grüße
bastla
Meine Berechenbarkeit ist eine meiner Stärken ...
Grüße
bastla
Grüße
bastla
Hallo,
wie würde man denn anstatt den erweiterten Eigenschaften das exakte Erstellungsdatum
auslesen?
Leider habe ich überhaupt keinen Plan von VBS, müsste aber einen Script
mit der gleichen Funktionalität wie oben genannt haben, der mir Dateiname
und Dateierstellungsdatum (objFile.CreationDate) ausgibt.
ggf. könnte mir hier jemand unter die Arme greifen.
wie würde man denn anstatt den erweiterten Eigenschaften das exakte Erstellungsdatum
auslesen?
Leider habe ich überhaupt keinen Plan von VBS, müsste aber einen Script
mit der gleichen Funktionalität wie oben genannt haben, der mir Dateiname
und Dateierstellungsdatum (objFile.CreationDate) ausgibt.
ggf. könnte mir hier jemand unter die Arme greifen.
> Dim arrHeaders(34)
> Set objShell = CreateObject("Shell.Application")
> Set objFolder = objShell.Namespace(Wscript.arguments(0))
>
> arrHeaders(0) = objFolder.GetDetailsOf(objFolder.Items, 0)
> arrHeaders(14) = objFolder.GetDetailsOf(objFolder.Items, 14)
>
> For Each strFileName in objFolder.Items
>
> Wscript.echo objFolder.GetDetailsOf(strFileName, 0) &"
> "& objFolder.GetDetailsOf(strFileName, 14)
>
> Next
>
Hallo ArthurDent42 und willkommen im Forum!
Grüße
bastla
wie würde man denn anstatt den erweiterten Eigenschaften das exakte Erstellungsdatum auslesen?
Andere Baustelle: http://msdn.microsoft.com/en-us/library/ke6a7czx(VS.85).aspxGrüße
bastla