Dateiliste aus Array verarbeiten
Hallo,
ich schreibe gerade an einem VBS-Script, dass an eine Dateiliste aus einem Array verarbeiten und an ein Programm übergeben soll.
Folgende Funktionen hat das Skript:
- Dateiliste eines vorgegebenen Quellverzeichnis auslesen und an einen Array übergeben
- Dem Konvertierungsprogramm Pfade und Dateinamen des Quell- und Zielverzeichnisses übergeben
- Quelldaten in das Zielverzeichnis verschieben
Ich danke schonmal für Beiträge.
Gruß von Jan
Mit dem was ich bisher programmierte habe ich folgendes Problem:
Der Aufruf verursacht beim zweiten Durchlauf einen Fehler.
Der 1te Aufruf des Konverters läuft wunderbar.
Setze ich den Zähler falsch?
ich schreibe gerade an einem VBS-Script, dass an eine Dateiliste aus einem Array verarbeiten und an ein Programm übergeben soll.
Folgende Funktionen hat das Skript:
- Dateiliste eines vorgegebenen Quellverzeichnis auslesen und an einen Array übergeben
- Dem Konvertierungsprogramm Pfade und Dateinamen des Quell- und Zielverzeichnisses übergeben
- Quelldaten in das Zielverzeichnis verschieben
Ich danke schonmal für Beiträge.
Gruß von Jan
Mit dem was ich bisher programmierte habe ich folgendes Problem:
Der Aufruf
WSHShell.Run (strCommand), 4, True
Der 1te Aufruf des Konverters läuft wunderbar.
Setze ich den Zähler falsch?
Option Explicit
' ************************
' ** Konstantendeklaration
' ************************
Dim Von, Nach, prginstall, logext, convext
Von = "D:\ModelleKonverter_1EINGANG" ' Quellpfad
Nach = "D:\ModelleKonverter_2AUSGANG" ' Zielpfad
'prginstall = "C:\Program Files (x86)\Notepad++\notepad++.exe"
prginstall = "C:\Program Files (x86)\3D-Tool V10\Convert.exe"
logext = ".txt"
convext = ".stp"
' ***********************
' ** Variablendeklaration
' ***********************
Dim StrF1(), i, j, StrStartfolder, ObjFSO, Datei, ObjFolder, quelldok, zieldok
Dim D, T, tmp, Timestamp, logdata, WSHShell, strCommand, zielmove, strCommandd
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
Set Datei = CreateObject("Scripting.FileSystemObject")
Set WSHShell = WScript.CreateObject("WScript.Shell")
'einlesen der im Verzeichnis enthaltenen Dateinamen in ein Array
i=0
if not ObjFSO.FolderExists(Von) Then
MsgBox "Den Startordner gibt es gar nicht!",vbCritical,"Arrayprog:"
wscript.quit
Else
Set ObjFolder = ObjFSO.Getfolder(Von)
redim StrF1(ObjFolder.files.count -1)
For Each Datei in ObjFolder.Files
StrF1(i) = Datei.Name
i=i+1
Next
End If
i=0
For each Datei in StrF1
' ********************
' ** Modelle umwandeln
' ********************
tmp = Replace(now,":", "-")
Timestamp = Replace (tmp,".", "_")
quelldok = Von & "\" & StrF1(i)
zieldok = Nach & "\" & StrF1(i) & convext
zielmove = Nach & "\" & StrF1(i)
logdata = Nach & "\" & StrF1(i) & "_" & Timestamp & logext
' Befehlszeile fuer den Konverter
strCommand = Chr(34) & prginstall & Chr(34) & " -i " & Chr(34) _
& quelldok & Chr(34) & " -o " & Chr(34) & zieldok & Chr(34) _
& " -ounit mm -healing 1 -hidden 0 -curves 1 -points 1 -log " _
& Chr(34) & logdata
' & Chr(34) & " -w"
' Aufruf des Konverters
'Wscript.Echo strCommand
WSHShell.Run (strCommand), 4, True
Set WSHShell = Nothing
Set ObjFSO = Nothing
' *****************************************
' ** Quelldokument in den Zielpfad kopieren
' *****************************************
strCommandd = Chr(34) & quelldok & "," & Chr(34) & Nach
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
'objFSO.MoveFile strCommandd ,True
'Wscript.Echo strCommandd
objFSO.CopyFile quelldok, zielmove, True
Set ObjFSO = Nothing
' ************************
' ** Quelldokument löschen
' ************************
Set ObjFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile quelldok
Set ObjFSO = Nothing
i=i+1
Next
' ***************************************
' ** Wenn Verzeichnis leer Script beenden
' ***************************************
If i = 0 Then
MsgBox "Keine Daten in dem Quellverzeichnis vorhanden",vbCritical,"Arrayprog:"
WScript.Quit
End If
WScript.Quit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 194118
Url: https://administrator.de/forum/dateiliste-aus-array-verarbeiten-194118.html
Ausgedruckt am: 18.06.2025 um 08:06 Uhr
1 Kommentar
Hallo Oreuss!
Wenn Du (unnötiger Weise, wie auch "
Grüße
bastla
Wenn Du (unnötiger Weise, wie auch "
ObjFSO
") das "WshShell
"-Objekt nach der ersten Verwendung vernichtest, brauchst Du Dich nicht darüber zu wundern, wenn es beim zweiten Array-Element nicht mehr vorhanden ist (was auch aus der - nicht geposteten - Fehlermeldung hervorgehen sollte) ...Grüße
bastla