Announcement

Collapse
No announcement yet.

Shell DateiInformationen auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Shell DateiInformationen auslesen

    Hallo,

    ich benutze den SystemScripter 6.0 um VBS-Dateien zu erstellen.

    Mit diesem Programm kann ich auch einige Codeschnipsel erzeugen.

    Und zwar diesen hier, der Informationen aus einer Datei auslesen kann.
    (Größe, Dauer, Abmessungen usw. von einer avi-Datei)

    Code:
    Set objShell = CreateObject ("Shell.Application")
    Set objFolder = objShell.Namespace ("C:\Video")
    Set objFSO = CreateObject ("Scripting.FilesystemObject")
    Dim arrHeaders(45)
    
    For i = o to 45
    
    arrHeaders(i) = objFolder.GetDetailsOf (objFolder,i)
    
    Next
    
    
    For Each strFileName in objFolder.Items
    
    For i = 0 to 45
    
    Wscript.Echo arrHeaders(i) & ": " & objFolder.GetDetailsOf (strFileName,i)
    
    Next
    
    Next
    Das Liefert mit von jeder Datei, die in dem Ordner Movie ist die Informationen.
    45 Stück pro Datei.


    Was ist nun nicht verstehe ist, was ist strFileName steht.?!

    Wenn ich die Variable auslese dann steht dort immer der Dateiname z.B. Video2008.avi

    Dann dachte ich mir, das ich die einzelnen informationen seperat abrufen kann.

    Und das will ich auch.

    Ich möchte in einem Ordner X die Datei Y auslesen.

    Mit OOP lese ich immer nur eine Datei ein also erst Video001.avi dann 002.avi.

    Jedesmal, soll er mir die Informationen wegschreiben.

    Aber wie?

    Ich habe folgendes probiert aber es geht nicht.

    Code:
    Set objShell = CreateObject ("Shell.Application")
    Set objFolder = objShell.Namespace ("C:\Video")
    Set objFSO = CreateObject ("Scripting.FilesystemObject")
    Dim arrHeaders(45)
    
    For i = o to 45
    
    arrHeaders(i) = objFolder.GetDetailsOf (objFolder,i)
    
    Next
    
    Wscript.Echo arrHeaders(1) & ": " & objFolder.GetDetailsOf ("Video001.avi",1)
    Wscript.Echo arrHeaders(21) & ": " & objFolder.GetDetailsOf ("Video001.avi",21)
    Wscript.Echo arrHeaders(22) & ": " & objFolder.GetDetailsOf ("Video001.avi",22)
    So lautet die Ausgabe:

    Dauer: Dauer
    Bitrate: Bitrate
    Abmessung: Abmessung

    Es sollte aber rauskommen.

    Dauer 01:04:45 usw.

    Kann mir einer die Lösung sagen, und erklären.

    mfg

    Seby

  • #2
    Hallo Leute,

    ok bis jetzt kann mir das keiner erkläre vielleicht habe ich die frage auch nur zu blöd gestellt.

    Nun eine andere frage:

    Kann man mit WMI-Abfragen auch andere Informationen einer Datei auslesen ausser

    Pfad
    Erstellungsdatum
    Größe
    ....

    Ich möchte gerne aus Bildern die Abmessungen haben, so wie auch bei Video Dateien.

    Wie geht das?

    Ich habe eine Code, der einiges mit WMI auslesen kann, aber er zeigt mir nicht alle gewünschten Informationen an.


    Code:
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
       & "\\" & strComputer & "\root\cimv2")
    				
    Set colFiles = objWMIService.ExecQuery _
       ("Select * from CIM_Datafile Where name = 'C:\\Test.jpg'")
    				
    For Each objFile In colFiles
        WScript.Echo "Access mask: " & objFile.AccessMask
        WScript.Echo "Archive: " & objFile.Archive
        WScript.Echo "Compressed: " & objFile.Compressed
        WScript.Echo "Compression method: " & objFile.CompressionMethod
        WScript.Echo "Creation date: " & objFile.CreationDate
        WScript.Echo "Computer system name: " & objFile.CSName
        WScript.Echo "Drive: " & objFile.Drive
        WScript.Echo "8.3 file name: " & objFile.EightDotThreeFileName
        WScript.Echo "Encrypted: " & objFile.Encrypted
        WScript.Echo "Encryption method: " & objFile.EncryptionMethod
        WScript.Echo "Extension: " & objFile.Extension
        WScript.Echo "File name: " & objFile.FileName
        WScript.Echo "File size: " & objFile.FileSize
        WScript.Echo "File type: " & objFile.FileType
        WScript.Echo "File system name: " & objFile.FSName
        WScript.Echo "Hidden: " & objFile.Hidden
        WScript.Echo "Last accessed: " & objFile.LastAccessed
        WScript.Echo "Last modified: " & objFile.LastModified
        WScript.Echo "Manufacturer: " & objFile.Manufacturer
        WScript.Echo "Name: " & objFile.Name
        WScript.Echo "Path: " & objFile.Path
        WScript.Echo "Readable: " & objFile.Readable
        WScript.Echo "System: " & objFile.System
        WScript.Echo "Version: " & objFile.Version
        WScript.Echo "Writeable: " & objFile.Writeable
        WScript.Echo objFile.Properties_.Item 
    Next
    OK folgende Informationen jeder Video Datei wil ich haben

    Dateipfad
    Dateiname
    Format
    Größe
    Länge

    Mit WMI kann ich alles bis auf die Länge abfragen. Das Funktioniert bei mir derzeit nur mit Shell-kommandos. Aber die versteh ich derzeit noch nicht.
    Zuletzt editiert von Seby-Deluxe; 15.02.2008, 21:19.

    Comment

    Working...
    X