Ordnerinhalte auslesen mit VBS

  • #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
 
  • #2
Hi,

das müßte die Zeile
IndexFile = Verz &\ & Index
sein, ersetz sie doch mal durch

IndexFile = C:\ & Index
Wobei du für C:\ nen beliebigen Pfad angeben kannst, aber unbedingt mit einem \ am ende.

z.B. C:\Temp\


Sollte eigentlich gehn ;D
 
  • #3
;D

Juchu, genau das war´s

Herzlichen Dank
 
Thema:

Ordnerinhalte auslesen mit VBS

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.493
Neuestes Mitglied
Flensburg45
Oben