- #1
W
wyoming
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 27.09.2002
- Beiträge
- 84
- Reaktionspunkte
- 0
Hallo zusammen,
habe ein VBS auf einer ZeitschriftenCDrom entdeckt, welches Ordnerinhalte (und Subordner) auflistet und wiedergibt als Htm-File, jede Datei ist dann als Link gekennzeichnet.
Allerdings funktioniert es nicht für bereits bespielte CDs. Das VBS speichert das Inhaltsverzeichnis (htm-file) nämlich in den auszulesenden Ordner. was bei einer CDrom bekanntlich nicht geht.
Frage daher, wie kann man dem VBS sagen, es soll z.B. immer das htm in C:/Temp (o.ä.) abspeichern ??
hier das Script:
dim gesamt
Set MyFiles = CreateObject(Scripting.FileSystemObject)
Set MyShell = CreateObject(WScript.Shell)
Set args=wscript.arguments
if args.count=0 then
install
else
start = args(0)
end if
if asc(right(start,2)) = 126 then start=inputbox(Anfangsverzeichnis mit kurzem Dateinamen ok?,,start)
if start = then wscript.quit
Set Verz = MyFiles.GetFolder(start)
DateiFilter = ucase(InputBox(Welchen Dateityp wollen Sie auflisten? Geben Sie die Dateierweiterung ein ( * für ALLE).,,*))
If DateiFilter = Then WScript.Quit
Do
i=instr(start,\)
start=mid(start,i+1)
loop while instr(start,\)
if start = then start = left(args(0),1)
typ=DateiFilter
if typ=* then typ = ALLE
Index = typ & Dateien & unter & start & .htm
IndexFile = Verz &\ & Index
IndexFile = replace(indexfile,\\,\)
Set TextFile = MyFiles.CreateTextFile(IndexFile, True)
TextFile.Writeline <HTML>
TextFile.Writeline <BODY>
Subsearch Verz
TextFile.Writeline <H3> & string(60, *) & </H3>
TextFile.Writeline <H3>Dateien insgesamt unter & start & : & gesamt & </H3>
TextFile.Writeline </BODY>
TextFile.WriteLine </HTML>
TextFile.Close
i=myshell.run(chr(34) & indexfile & chr(34))
Sub SubSearch(Byval Verz)
filesearch verz
Set Weitere = Verz.SubFolders
For Each AktuellerOrdner In Weitere
i=instr(AktuellerOrdner,Temporary Internet Files)
if i = 0 then SubSearch AktuellerOrdner
Next
End Sub
Sub Filesearch(Byval AktuellerOrdner)
Set Dateien=AktuellerOrdner.Files
z = 0
For Each Datei in Dateien
If DateiFilter = * OR ucase(MyFiles.GetExtensionName(Datei.Path)) = DateiFilter Then
z = z + 1
if z = 1 then TextFile.Writeline <H2> & typ & Dateien unter & AktuellerOrdner & </H2>
Pfad = Replace(Datei, \, /, 1)
TextFile.Writeline <A HREF= & Chr(34) & file:/// & Pfad & Chr(34) & > & ucase(datei.name) & </A> </br>
End If
Next
if z > 0 then
gesamt = gesamt + z
if z = 1 then
TextFile.Writeline <H3> & z & Datei</H3> </br>
else
TextFile.Writeline <H3> & z & Dateien</H3> </br>
end if
end if
End Sub
sub install()
On Error Resume Next
installed=MyShell.RegRead(HKEY_CLASSES_ROOT\folder\Shell\HTML-Index\Command\)
if installed = then
Set c = MyShell.Environment(PROCESS)
winverz=c(WINDIR)
neu=wscript.exe & winverz & \index.vbs & chr(34) & %1 & chr(34)
MyShell.RegWrite(HKEY_CLASSES_ROOT\folder\Shell\HTML-Index\Command\),neu
PCWScript = WScript.ScriptFullName
set pcwcopy=MyFiles.Getfile(PCWScript)
installpath=winverz & \index.vbs
pcwcopy.copy(installpath)
msgbox Script ist jetzt installiert, siehe ==> HKEY_CLASSES_ROOT\Folder\SHELL\HTML-Index. & chr(10) & chr(13) & Aufruf über Ordner-Kontextmenü->HTML-Index'
wscript.quit
Else
m=myshell.popup(HTML-Index deinstallieren?,,Uninstall,4)
if m=6 then MyShell.RegDelete(HKCR\Folder\Shell\HTML-Index\)
end if
wscript.quit
end sub
habe ein VBS auf einer ZeitschriftenCDrom entdeckt, welches Ordnerinhalte (und Subordner) auflistet und wiedergibt als Htm-File, jede Datei ist dann als Link gekennzeichnet.
Allerdings funktioniert es nicht für bereits bespielte CDs. Das VBS speichert das Inhaltsverzeichnis (htm-file) nämlich in den auszulesenden Ordner. was bei einer CDrom bekanntlich nicht geht.
Frage daher, wie kann man dem VBS sagen, es soll z.B. immer das htm in C:/Temp (o.ä.) abspeichern ??
hier das Script:
dim gesamt
Set MyFiles = CreateObject(Scripting.FileSystemObject)
Set MyShell = CreateObject(WScript.Shell)
Set args=wscript.arguments
if args.count=0 then
install
else
start = args(0)
end if
if asc(right(start,2)) = 126 then start=inputbox(Anfangsverzeichnis mit kurzem Dateinamen ok?,,start)
if start = then wscript.quit
Set Verz = MyFiles.GetFolder(start)
DateiFilter = ucase(InputBox(Welchen Dateityp wollen Sie auflisten? Geben Sie die Dateierweiterung ein ( * für ALLE).,,*))
If DateiFilter = Then WScript.Quit
Do
i=instr(start,\)
start=mid(start,i+1)
loop while instr(start,\)
if start = then start = left(args(0),1)
typ=DateiFilter
if typ=* then typ = ALLE
Index = typ & Dateien & unter & start & .htm
IndexFile = Verz &\ & Index
IndexFile = replace(indexfile,\\,\)
Set TextFile = MyFiles.CreateTextFile(IndexFile, True)
TextFile.Writeline <HTML>
TextFile.Writeline <BODY>
Subsearch Verz
TextFile.Writeline <H3> & string(60, *) & </H3>
TextFile.Writeline <H3>Dateien insgesamt unter & start & : & gesamt & </H3>
TextFile.Writeline </BODY>
TextFile.WriteLine </HTML>
TextFile.Close
i=myshell.run(chr(34) & indexfile & chr(34))
Sub SubSearch(Byval Verz)
filesearch verz
Set Weitere = Verz.SubFolders
For Each AktuellerOrdner In Weitere
i=instr(AktuellerOrdner,Temporary Internet Files)
if i = 0 then SubSearch AktuellerOrdner
Next
End Sub
Sub Filesearch(Byval AktuellerOrdner)
Set Dateien=AktuellerOrdner.Files
z = 0
For Each Datei in Dateien
If DateiFilter = * OR ucase(MyFiles.GetExtensionName(Datei.Path)) = DateiFilter Then
z = z + 1
if z = 1 then TextFile.Writeline <H2> & typ & Dateien unter & AktuellerOrdner & </H2>
Pfad = Replace(Datei, \, /, 1)
TextFile.Writeline <A HREF= & Chr(34) & file:/// & Pfad & Chr(34) & > & ucase(datei.name) & </A> </br>
End If
Next
if z > 0 then
gesamt = gesamt + z
if z = 1 then
TextFile.Writeline <H3> & z & Datei</H3> </br>
else
TextFile.Writeline <H3> & z & Dateien</H3> </br>
end if
end if
End Sub
sub install()
On Error Resume Next
installed=MyShell.RegRead(HKEY_CLASSES_ROOT\folder\Shell\HTML-Index\Command\)
if installed = then
Set c = MyShell.Environment(PROCESS)
winverz=c(WINDIR)
neu=wscript.exe & winverz & \index.vbs & chr(34) & %1 & chr(34)
MyShell.RegWrite(HKEY_CLASSES_ROOT\folder\Shell\HTML-Index\Command\),neu
PCWScript = WScript.ScriptFullName
set pcwcopy=MyFiles.Getfile(PCWScript)
installpath=winverz & \index.vbs
pcwcopy.copy(installpath)
msgbox Script ist jetzt installiert, siehe ==> HKEY_CLASSES_ROOT\Folder\SHELL\HTML-Index. & chr(10) & chr(13) & Aufruf über Ordner-Kontextmenü->HTML-Index'
wscript.quit
Else
m=myshell.popup(HTML-Index deinstallieren?,,Uninstall,4)
if m=6 then MyShell.RegDelete(HKCR\Folder\Shell\HTML-Index\)
end if
wscript.quit
end sub