Windows-Dateizuordnung basierend auf dem Dateityp und der Größe

538
Sujay Phadke

Ich habe viele Videos auf meiner Festplatte gespeichert. Diejenigen, die von DVD oder niedrigerer Qualität sind (480p, max. Größe 7 GB), möchte ich mit vlc öffnen. Die HD-Qualität (720p, 1080p, Größe über 7GB) möchte ich mit PowerDVD öffnen.

Alle Dateien haben die gleiche Erweiterung (.mkv). Ist es möglich, die Dateizuordnung in Windows so zu programmieren, dass zunächst der Dateityp (in diesem Fall mkv) und dann auch die Dateigröße geprüft wird. Es sollte je nach Größe automatisch vlc oder PowerDVD für MKV-Dateien verwenden.

Bitte lassen Sie mich wissen, ob eine solche Optimierung möglich ist.

1

1 Antwort auf die Frage

5
Karan

Sie müssen die MKV-Erweiterung mit einer Batchdatei oder einem PowerShell / VB-Skript verknüpfen, das wiederum die Dateigrößenprüfung durchführt und die entsprechende Anwendung aufruft.

So machen Sie es mit einer Batch-Datei:

  1. Öffnen Sie regedit, navigieren Sie zu HKEY_CLASSES_ROOT\.mkvdem Wert (Standard), und notieren Sie ihn . Dies ist die ProgID . Nehmen wir an, es ist mkvfile .

  2. Navigieren Sie zu HKEY_CLASSES_ROOT\mkvfile\shell\open\commanddem Wert (Standard) und ändern Sie ihn in etwas "D:\MKVSizeCheck.bat" "%1".

  3. Erstellen Sie nun die D:\MKVSizeCheck.batBatchdatei mit folgendem Inhalt:

    if %~z1 leq 524288000 ( start "" /max "C:\Program Files\VLC\VLC.exe" "%~1" ) else ( start "" /max "C:\Program Files\PowerDVD\PowerDVD.exe" "%~1" ) 

So machen Sie es mit VBScript:

  1. Das gleiche wie oben.

  2. Navigieren Sie zu HKEY_CLASSES_ROOT\mkvfile\shell\open\commanddem Wert (Standard) und ändern Sie ihn in etwas wscript //B "D:\MKVSizeCheck.vbs" "%1".

  3. Erstellen Sie nun die D:\MKVSizeCheck.vbsDatei mit folgendem Inhalt:

    set objArgs = WScript.Arguments set objShell = WScript.CreateObject("WScript.Shell") set objFSO = WScript.CreateObject("Scripting.FileSystemObject") if objFSO.GetFile(objArgs.Item(0)).Size <= 524288000 then objShell.Run """C:\Program Files\VLC\VLC.exe"" """ & objArgs.Item(0) & """", 3, false else objShell.Run """C:\Program Files\PowerDVD\PowerDVD.exe"" """ & objArgs.Item(0) & """", 3, false end if 

Hinweis 1: Ändern Sie die Pfade selbstverständlich nach Bedarf. Der obige Code legt auch 500 MB (= 524288000 Byte) als Schwellenwert fest. Ändern Sie dies ebenfalls nach Ihren Bedürfnissen (sehr große Werte sind möglicherweise nur in VBScript möglich).

Hinweis 2: Sie können immer ein Dienstprogramm wie FileTypesMan verwenden, um die Schritte 1-2 auszuführen, wenn Sie nicht sicher sind, ob Sie die Registrierung manuell bearbeiten möchten .

Hinweis 3: Wenn Sie eine Batch-Datei verwenden, blinkt ein Konsolenfenster, was irritierend wirken kann. Jetzt kann dies mit etwas wie Hidden Start oder VBScript ausgeblendet werden. Warum aber lieber VBScript verwenden?

Hallo Karan, Danke für die prompte Antwort. Es funktioniert jedoch nicht. Nun, eigentlich funktioniert die Batch-File-Methode. Windows-Batch-Dateimathematik scheint jedoch auf 32-Bit-Genauigkeit beschränkt zu sein. Daher kann ich die Dateigröße nicht mit einer Zahl wie "4 * 1024 * 1024 * 1024" (4 GB) vergleichen. Also habe ich die Vbscript-Methode ausprobiert. Ich habe den Registrierungseintrag in MKVSizeCheck.vbs "% 1" geändert. Wenn ich jedoch versuche, eine mkv-Datei zu öffnen, wird die Fehlermeldung ausgegeben, dass "nnn.mkv" keine gültige Win32-Anwendung ist. Es scheint, die Skriptdatei nicht aufzurufen. Ich habe es auch mit einer leeren Skriptdatei versucht, aber es gibt den gleichen Fehler. Sujay Phadke vor 8 Jahren 0
Weitere Informationen finden Sie oben in der Bearbeitung (Schritt 2 des VBScript-Abschnitts). Karan vor 8 Jahren 0
Könnten Sie die Bedeutung aller Anführungszeichen erklären? Warum sind vor dem Programmnamen 3 Anführungszeichen erforderlich, 3 vor dem ersten Et-Zeichen nach dem zweiten Ampersand-Zeichen? Sujay Phadke vor 8 Jahren 0
Ok, ich beantworte hier mein eigenes Q (Karan, korrigiere mich wenn ich falsch liege). Die doppelten Anführungszeichen in doppelten Anführungszeichen reduzieren sich beim Analysieren auf etwa Folgendes: "C: \ Programme \ VLC \ VLC.exe objArgs.Item (0)", 3, false ". Es wird hier erklärt: http://stackoverflow.com/questions/2942554/adding-quotes-to-a-string-in-vbscript Sujay Phadke vor 8 Jahren 0
Ja, du hast es richtig verstanden. VBScript erfordert zwei Anführungszeichen, wenn Sie ein Anführungszeichen als Teil einer in Anführungszeichen enthaltenen Zeichenfolge einfügen möchten. Das erste Argument, das ausgeführt werden soll, lautet also "C: \ Programme \ VLC \ VLC.exe"."`. Sie können dies leicht überprüfen, indem Sie eine MsgBox verwenden, um das gesamte erste Argument zu drucken. Wenn Sie mehr über die beiden anderen Argumente für Run wissen möchten (zB * 3 * und * false *), lesen Sie [hier] (http: / /ss64.com/vb/run.html). Karan vor 8 Jahren 0