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, 2211 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 ...

Java
gelöst Textdatei in Array speichern (zeilenweise) (1)

Frage von Bruchsal zum Thema Java ...

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 ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(7)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (19)

Frage von Yaimael zum Thema Windows Server ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (15)

Frage von Voiper zum Thema Weiterbildung ...