Hi, Alter.
Hier ein einfacher Weg, CAB-Dateien zu untersuchen.
Extract.VBS
----------------------------------------------
set MyShell = CreateObject("wscript.shell")
Set MyFiles = CreateObject("Scripting.FileSystemObject")
cabpfad=inputbox("Pfad der CAB-Dateien eingeben: ")
if cabpfad="" then wscript.quit
set MyOrdner=MyFiles.GetFolder(cabpfad)
modus=myshell.popup("Kennen Sie den Namen/Dateimaske der zu entpackenden Datei(en)?",,"",3)
if modus=2 then wscript.quit
if modus=6 then
FileKnown
else
FileUnknown
FileKnown
end if
Sub FileKnown()
set batch=MyFiles.CreateTextFile("c:\\cablist.bat")
datei=inputbox("Dateiname oder Dateimaske eingeben: ")
if datei="" then wscript.quit
zielpfad=inputbox("Zielpfad der entpackten Dateien eingeben:")
befehl="for %%n in (" & cabpfad & "\\*.cab) do extract /Y /L " & zielpfad & " %%n " & datei
batch.Writeline befehl
\'befehl="exit"
\'batch.Writeline befehl
batch.close
myshell.Run ("command.com /c c:\\cablist.bat"),2,TRUE
set del=MyFiles.Getfile("c:\\cablist.bat")
del.delete
End Sub
Sub FileUnknown()
set batch=MyFiles.CreateTextFile("c:\\cablist.bat")
datei=inputbox("Geben Sie eine passende Dateimaske ein oder NICHTS, wenn Sie in der kompletten Liste suchen wollen:")
befehl="for %%n in (" & cabpfad & "\\*.cab) do extract /d %%n " & datei & " >> c:\\cablist.lst"
batch.Writeline befehl
befehl="type c:\\cablist.lst | find /v /i " & chr(34) & "Microsoft" & chr(34) & " > c:\\cablist.lst"
batch.Writeline befehl
befehl="type c:\\cablist.lst | find /v /i " & chr(34) & "Matching" & chr(34) & " > c:\\cablist.lst"
batch.Writeline befehl
\'befehl="exit"
\'batch.Writeline befehl
batch.close
myshell.Run ("command.com /c c:\\cablist.bat"),2,TRUE
myshell.Run ("wordpad.exe c:\\cablist.lst"),,TRUE
set del=MyFiles.Getfile("c:\\cablist.lst")
del.delete
End Sub
-----------------------
Hab ich von PC-Welt.
CU Kolti
Archiv Altes Windows: 98, SE, ME und NT 16.921 Themen, 62.626 Beiträge
Hi Kolti,
vielen Dank erstmal. Das werde ich mal ausprobieren. Habe allerdings nur VB5 auf'm Rechner. Wird aber schon funzen, denke ich. Die doppelten Backslashes werde ich wohl modifizieren müssen. :-))
Überprüft habe ich den Inhalt der CABs seither immer mit dem "Power-Archiver". Der Extract-Befehl im DOS-Fenster geht auch, - allerdings ist die Syntax ellenlang und sehr risikoreich was Tippfehler angeht.
Auch hat mich dieser Befehl aus unerfindlichen Gründen mal im Stich gelassen. Da wollte ich einen Font (ARIBLK.TTF) rausholen, und bekam immer die Meldung, er könne nicht gefunden werden. Er war aber 100%ig da drin. Bei anderen Fonts derselben CAB gings. Nur bei diesem nicht. Der Power-Archiver hat's dann geschafft. Ich versuchte es zuerst mit dem Extract-Befehl, weil ich jemandem posten wollte wie das geht, und hab's zunächst selbst ausprobiert. Und Sch..... war's! Man kann nie genug aufpassen! Wenn's dumm läuft, stehst du nachher unverschuldet als Nichtskönner da. :-(
Also, vielen Dank nochmal.
cu
Dr. Hook
Hi,
wie schafft ihr hier die Backslash's??
Gruss,
Salami
einfach eingeben, also [alt gr]+[<].
allerdings werden sie in der vorschau nicht angezeigt und im posting kommen sie dann doppelt...
@the_mic
Hi,
kann es sein, daß Du was verwechselt hat? [alt gr]+[ Diese hier: "|" (Alter Unix-Befehl). Der Backslash ist auf [alt gr]+[ß].
Dr. Hook
hm, scheint wohl ein weiterer unterschied von der schweizer zur deutschen tastatur zu sein.
sz hab ich gar nicht *g* und die pipe finde ich auf [alt gr] + [1]
\
Ich schreibe umfangreiche Postings immer mit Notepad und dann kopiere ich die in Fenster.
Geht schneller
Ahh, jetzt habe ich die Antwort.
in dem oberen Posting an mich habe ich das mit den Backslashs nicht überrissen, jetzt weiss ich, wie du es machst.
Vielen Dank,
Salami \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
