Lazy: Finde Fehler nicht :(

Beitrag lesen

Hi,

finde den Fehler nicht im Script. Das Script soll testen ob eine Windowsfreigabe existiert. Den Pfad für die Freigaben soll es aus einer externen Datei beziehen die per Drag & Drop auf das Script gezogen wird. Ein anderes Problem ist, dass ich nicht weiss, wie ich das Script dazu bringe sich bei einer Passwort geschützen Freigabe sich automatisch anzumelden.

Option Explicit

Dim WSHShell, fso, FileIn, FileOut
Dim Datei, Text, Txt, i, arrSort, arrTest(), oArgs

Set WSHShell = WScript.CreateObject("WScript.Shell")
Set fso      = WScript.CreateObject("Scripting.FileSystemObject")
set oArgs    = Wscript.Arguments

' Fals ein Argument übergeben wurde, sollte es einen Dateinamen
' enthalten
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For i = 0 to oArgs.Count - 1                 ' hole alle Argumente
  Datei = oArgs.item(i)
  If not fso.FileExists( Datei ) then
    MsgBox UCase( Datei ) & "   existiert nicht!" & vbCRLF & vbCRLF & " . . . das ist das Ende.", , WScript.ScriptName
    WScript.Quit
  End If
  Exit For                                   ' nur das erste Argument reicht
Next

' Gibt's keinen Dateinamen, wird halt das Skript gelesen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if Datei = "" then Datei = WScript.ScriptName

' alle Zeilen lesen und an Array übergeben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set FileIn  = FSO.OpenTextFile(Datei, 1, true)                    ' Datei zum Lesen öffnen
i=0
  Do While Not (FileIn.atEndOfStream)                             ' wenn Datei nicht zu ende ist, weiter machen
      ReDim Preserve Zeile(i)
                     Zeile(i) = FileIn.Readline
      i = i + 1
  Loop

If i < 1 Then
      ReDim Preserve Zeile(i)
                     Zeile(i) = "Leerdatei"
End If
    FileIn.Close
Set FileIn  = nothing

' Array bearbeiten; hier: Server testen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  for i = LBound( Zeile ) to UBound( Zeile )
    If fso.FolderExists( Freigabe ) then
      Zeile(i) = "==>" & vbTab & Zeile(i)
    Else
      Zeile(i) =         vbTab & Zeile(i)
    End If
  next

' Array in (Ziel-) Datei schreiben
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Datei = fso.GetBaseName( Datei ) & "-.txt"

Set FileOut  = FSO.OpenTextFile( Datei , 2, true) ' Datei zum Screiben öffnen; 2: immer neu anlegen

'   FileOut.WriteLine( vbCRLF & now() & vbCRLF )                   ' nur Für Testzwecke

for i = 0 to ubound( Zeile )
    FileOut.WriteLine( Zeile(i) )
  next

FileOut.Close
Set FileOuT  = nothing

' (Ziel-) Datei anzeigen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WSHShell.run "notepad """ & Datei & """" , , True        ' True: Skriptabarbeitung wartet bis Programm (notepade) beendet ist

' (Ziel-) Datei löschen
' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fso.DeleteFile( Datei )

Danke.

Grüße Lazy