Spoom Geschrieben 12. September 2002 Geschrieben 12. September 2002 Hab folgendes VBS-Skript geschrieben: WScript.Echo WScript.Interactive 'Parameter 'Abfragen ob das Programm mit allen Parameter aufgerufen wird 'Parameterübergabe erfolgt im Array Script.Arguments If WScript.Arguments.count() <> 3 And WScript.Arguments.count() <> 4 Then msgbox "Parameter benötigt!" & vbCr & chr(10) & "1. Dateiname/Maske z.B. *.* *.txt" & vbCr & chr(10) & "2. Dateiname Ausgabedatei" & vbCr & chr(10) & "3. Befehl (Platzhalter fürDateiname %1)" & vbCr & chr(10) & "4. Optional: Arbeitsverzeichnis" WScript.Quit(ExitCode) End If 'Übertrgen übergebenen Parameter in Variablen ParmFileFilter = WScript.Arguments(0) ParmOutputfile = WScript.Arguments(1) ParmCommands = WScript.Arguments(2) If WScript.Arguments.count() = 4 Then ParmFolder = WScript.Arguments(3) End If 'Deklaration 'Deklarieren der Objekte fs und FileFilter Set fs = CreateObject("Scripting.FileSystemObject") Set shell = CreateObject("wscript.shell") 'Set FileFilter = CreateObject("filefilter.wsc") 'Plausi 'Überprüfen ob übergebener Ordner existiert If ParmFolder <> "" And fs.FolderExists(ParmFolder) = False Then MsgBox "Parameter 4: Ordner nicht Vorhanden!" WScript.Quit(ExitCode) End If 'Wenn kein Filter Filter = *.* If ParmFileFilter = "" Then ParmFileFilter = "*.*" End If 'Wenn keine Ordner übergeben wird Ordner in dem das Programm liegt nehmen If ParmFolder = "" Then ParmFolder = fs.getabsolutepathname(".") & "\" End If ParmOutputfile = ParmFolder & ParmOutputfile 'OrdnerAuslesen Set FileFolder = fs.getfolder(ParmFolder) Set folder = fs.GetFolder(ParmFolder) Set files = folder.files For Each filename In files 'Dateiname aus Pfad und Name i = split(filename, "\") filename = i(Ubound(i)) If FileFilter(filename, ParmFileFilter) Then 'Dateiname ohne Endung i = split(filename, ".") filename = i(0) '$1 in der Befehlsübergabe mit dem Dateinamen ersetzten Commands = Commands & replace(ParmCommands, "$1", filename) & vbCr & chr(10) End If Next 'Wenn keine Dateien gefunden If Commands = "" Then MsgBox "Keine Datei gefunden!" WScript.Quit(ExitCode) End If 'Wenn Datei schon vorhanden Inhalt anhängen If fs.FileExists(ParmOutputfile) Then Set InputFile = fs.OpenTextFile(ParmOutputfile) 'Inhalt lesen und neuen Inhalt anhängen Commands = Inputfile.readAll() & Commands End If 'Datei schreiben Set Outputfile = fs.CreateTextFile(ParmOutputfile, True) Outputfile.Write (Commands) Outputfile.Close 'Filefilter funktion Function FileFilter(filename, ParmFileFilter) 'Bei *.* nicht Prüfen If ParmFileFiltert = "*.*" Then FileFilter True End If 'Beim stern splitten FF = split(ParmFileFilter, "*") If count(FF) > 2 Then MsgBox "Parameter 1: Falsche Form(Gültig *.txt oder xyz*.txt)!" WScript.Quit(ExitCode) End If 'Überprüfen ob Teile des Dateinamen gleich der Teile in der Maske If count(FF) = 2 Then FilterLeft = FF(0) FilterRight = FF(1) If LCASE(FilterLeft) = LCASE(left(filename, len(FilterLeft))) And LCASE(FilterRight) = LCASE(right(filename, len(FilterRight))) Then FileFilter = True Exit Function End If End If FileFilter = False End Function Function count(arr) For Each val In arr a = a + 1 Next count = a End Function und das ding läuft im Batch ab sprich er sperrt die CMD-Line nicht obwohl WScript.Interactive = true ist. Ich bin am verzweifeln wo dran kann das liegen ? Spoom Zitieren
Olli_Master Geschrieben 12. September 2002 Geschrieben 12. September 2002 Ruf den script mal über die Kommandozeile mit cscript.exe <<name_des_scripts.vbs>> auf. Ich hoffe das hilft. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.