Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Dateiliste aus Array verarbeiten

Frage Entwicklung VB for Applications

Mitglied: Oreuss

Oreuss (Level 1) - Jetzt verbinden

12.11.2012, aktualisiert 17:14 Uhr, 2215 Aufrufe, 1 Kommentar

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
01.
WSHShell.Run (strCommand), 4, True
verursacht beim zweiten Durchlauf einen Fehler.
Der 1te Aufruf des Konverters läuft wunderbar.
Setze ich den Zähler falsch?

01.
Option Explicit 
02.
' ************************ 
03.
' ** Konstantendeklaration 
04.
' ************************ 
05.
Dim Von, Nach, prginstall, logext, convext 
06.
Von = "D:\ModelleKonverter_1EINGANG" ' Quellpfad 
07.
Nach = "D:\ModelleKonverter_2AUSGANG" ' Zielpfad 
08.
'prginstall = "C:\Program Files (x86)\Notepad++\notepad++.exe" 
09.
prginstall = "C:\Program Files (x86)\3D-Tool V10\Convert.exe" 
10.
logext = ".txt" 
11.
convext = ".stp" 
12.
' *********************** 
13.
' ** Variablendeklaration 
14.
' *********************** 
15.
Dim StrF1(), i, j, StrStartfolder, ObjFSO, Datei, ObjFolder, quelldok, zieldok 
16.
Dim D, T, tmp, Timestamp, logdata, WSHShell, strCommand, zielmove, strCommandd 
17.
Set ObjFSO       = CreateObject("Scripting.FileSystemObject") 
18.
Set Datei      = CreateObject("Scripting.FileSystemObject") 
19.
Set WSHShell     = WScript.CreateObject("WScript.Shell") 
20.
'einlesen der im Verzeichnis enthaltenen Dateinamen in ein Array 
21.
i=0 
22.
if not ObjFSO.FolderExists(Von) Then 
23.
	MsgBox "Den Startordner gibt es gar nicht!",vbCritical,"Arrayprog:" 
24.
	wscript.quit 
25.
Else 
26.
	Set ObjFolder = ObjFSO.Getfolder(Von) 
27.
	redim StrF1(ObjFolder.files.count -1) 
28.
	For Each Datei in ObjFolder.Files 
29.
		StrF1(i) = Datei.Name 
30.
		i=i+1 
31.
	Next 
32.
End If 
33.
i=0 
34.
For each Datei in StrF1 
35.
	' ******************** 
36.
	' ** Modelle umwandeln 
37.
	' ******************** 
38.
	tmp = Replace(now,":", "-") 
39.
	Timestamp = Replace (tmp,".", "_") 
40.
	quelldok = Von & "\" & StrF1(i) 
41.
	zieldok = Nach & "\" & StrF1(i) & convext 
42.
	zielmove = Nach & "\" & StrF1(i) 
43.
	logdata = Nach & "\" & StrF1(i) & "_" & Timestamp & logext 
44.
	 
45.
' Befehlszeile fuer den Konverter 
46.
	strCommand = Chr(34) & prginstall & Chr(34) & " -i " & Chr(34) _ 
47.
	& quelldok & Chr(34) & " -o " & Chr(34) & zieldok & Chr(34) _ 
48.
	& " -ounit mm -healing 1 -hidden 0 -curves 1 -points 1 -log " _ 
49.
	& Chr(34) & logdata 
50.
	' & Chr(34) & " -w" 
51.
	 
52.
' Aufruf des Konverters 
53.
	'Wscript.Echo strCommand 
54.
	WSHShell.Run (strCommand), 4, True 
55.
	Set WSHShell = Nothing 
56.
	Set ObjFSO = Nothing 
57.
	' ***************************************** 
58.
	' ** Quelldokument in den Zielpfad kopieren 
59.
	' ***************************************** 
60.
	strCommandd = Chr(34) & quelldok & "," & Chr(34) & Nach 
61.
	Set ObjFSO      = CreateObject("Scripting.FileSystemObject") 
62.
	'objFSO.MoveFile strCommandd ,True 
63.
	'Wscript.Echo strCommandd 
64.
	objFSO.CopyFile quelldok, zielmove, True 
65.
	Set ObjFSO = Nothing 
66.
	' ************************ 
67.
	' ** Quelldokument löschen 
68.
	' ************************ 
69.
	Set ObjFSO      = CreateObject("Scripting.FileSystemObject") 
70.
	objFSO.DeleteFile quelldok 
71.
	Set ObjFSO = Nothing 
72.
	i=i+1 
73.
Next 
74.
' *************************************** 
75.
' ** Wenn Verzeichnis leer Script beenden 
76.
' *************************************** 
77.
If i = 0 Then 
78.
	MsgBox "Keine Daten in dem Quellverzeichnis vorhanden",vbCritical,"Arrayprog:" 
79.
    WScript.Quit 
80.
End If 
81.
WScript.Quit
Mitglied: bastla
12.11.2012 um 17:26 Uhr
Hallo Oreuss!

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
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Ähnliche Dateinamen zusammen verarbeiten (2)

Frage von JT-131 zum Thema Batch & Shell ...

PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Datenbanken
Mongodb Daten aus Array auslesen (1)

Frage von Baanause zum Thema Datenbanken ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Windows Server
Kennwort vergessen bei Hyper vserver 2012r (20)

Frage von jensgebken zum Thema Windows Server ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Festplatten, SSD, Raid
Raidcontroller funktioniert nur, wenn unter Legacy-Boot gestartet wird (13)

Frage von DerWoWusste zum Thema Festplatten, SSD, Raid ...