Im Windows Script Hosting gibt es keine Funktion um zu prüfen ob eine bestimmte Datei schon geöffnet ist.

Über die Funktion OpenTextFile kann dies ermöglicht werden.

Aber nicht alle Programme sperren die Datei wenn sie durch die Anwendung geöffet wurde (z.B. Notepad).

 

OpenTextFile

 
Option Explicit

Dim f
Dim sFile

' Hier den Dateinamen eintragen.
' ------------------------------
sFile = "c:\tmp\test.txt"
' ------------------------------

Function IsFileOpen(sFileName)
Dim oFSO, f
Dim iErrNum
Const ForAppending = 8
Const ForReading = 1

Set oFSO = CreateObject("Scripting.FileSystemObject")

On Error Resume Next ' Fehlerprüfung abschalten.
' Versuch die Datei gesperrt zu öffnen .
Set f = oFSO.OpenTextFile(sFileName, ForAppending, False)
iErrNum = Err.Number ' auftretende Fehler-Nummer sichern.
f.Close ' Datei schließen.
On Error Goto 0 ' Error-Prüfung wieder einschalten.

' Auftetende Fehlernummer herausbekommen.
Select Case iErrNum
  Case 0
    'Kein Fehler ist aufgetreten.
    'Datei ist bis jetzt NICHT durch eine andere Anwendung geöffnet.
    IsFileOpen = False

  Case 70
    'Feher-Nummer (Error number) für "Zugriff verweigert"
    'Datei ist schon durch eine andere Anwendung geöffnet.
    IsFileOpen = True

  Case Else ' Sonstiger auftretender Fehler.

    Err.Raise iErrNum
  End Select
End Function

' Aufruf der Funktion
f = IsFileOpen(sFile)
MsgBox f