Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBScript - Sub-Funktion einfügen

Frage Entwicklung VB for Applications

Mitglied: lordiliner

lordiliner (Level 1) - Jetzt verbinden

06.02.2013 um 08:29 Uhr, 1866 Aufrufe, 8 Kommentare

Guten Morgen zusammen,
für ein VBScript soll ich eine Unterfunktion einbauen. Leider bin ich auf diesem Gebiet absolut unwissend und brauche eure Hilfe. Hier die Aufgabenstellung:

Das Script kopiert .txt-Dateien von verschiedenen Ordnern in andere Ordner. Jetzt sollen die verschiedenen Pfade in einer Unterfunktion angegeben werden, damit diese automatisch angezogen werden.
Momentan habe ich diesen Code:

01.
Option Explicit 
02.
 
03.
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject") 
04.
Const Folder11 = "C:\test\start\ordner1\" 
05.
Const Folder21 = "C:\test\ende\ordner1\" 
06.
Const Folder12 = "C:\test\start\ordner2\" 
07.
Const Folder22 = "C:\test\ende\ordner2\" 
08.
Const Folder13 = "C:\test\start\ordner3\" 
09.
Const Folder23 = "C:\test\ende\ordner3\" 
10.
Dim F1, F2, F3, item1, item2, item3 
11.
  
12.
Set F1 = objFso.GetFolder(Folder11) 
13.
Set F2 = objFso.GetFolder(Folder12) 
14.
Set F3 = objFso.GetFolder(Folder13) 
15.
 
16.
Do 
17.
 For Each item1 In F1.Files 
18.
	If Right(item1.Name, 3) = "txt" Then  
19.
	objFso.CopyFile item1.Path, Folder21, True 
20.
	End If 
21.
 Next 
22.
 For Each item2 In F2.Files 
23.
	If Right(item2.Name, 3) = "txt" Then 
24.
	objFso.CopyFile item2.Path, Folder22, True 
25.
	End If 
26.
 Next 
27.
	For Each item3 In F3.Files 
28.
	If Right(item3.Name, 3) = "txt" Then 
29.
	objFso.CopyFile item3.Path, Folder23, True 
30.
	End If 
31.
Loop
Also in der Do-Schleife soll nicht drei Mal eine If-Funktion sein, sondern eine Unterfunktion, die eben die Pfade angibt.

Über einsteigerfreundliche Tipps und Anregungen würde ich mich sehr freuen.

Liebe Grüße

lordiliner
Mitglied: 106543
06.02.2013 um 08:39 Uhr
Hi,

geschätzte 3 Sec. Suche in Google.de:
http://www.instructables.com/id/VBS-Tutorial-Basics/

Grüße
Exzellius
Bitte warten ..
Mitglied: lordiliner
06.02.2013 um 09:06 Uhr
Hallo Exzellius.

Vielen Dank für den Link. Hab mir mal schnell alles durchgelesen und hab jetzt ein paar Fragen dazu:

Zum Thema Subs steht auf der Seite, dass die so aussehen:
01.
Sub iRule(arg1,arg2,arg3) 
02.
...Script... 
03.
End Sub
Muss ich dann als Argumente die sechs verschiedenen Pfade angeben?
Bei ...Script... muss ich die Zeile mit dem .CopyFile einfügen?
Wie erstelle ich eigentlich ein Argument? Genauso wie eine Variable?

Entschuldigt bitte meine Unwissenheit, aber VBS ist einfach absolutes Neuland für mich.

Liebe Grüße

lordiliner
Bitte warten ..
Mitglied: 106543
06.02.2013 um 09:29 Uhr
Hi du

kein Problem dafür gibts ja Foren
zunächst einmal um auf deine Fragen einzugehen:
bei den Argumenten muss dein Pfad rein ja
dann müsste ein Aufruf für die Sub ca. so aussehen ->
01.
call iRule(Pfad1,Pad2,Pfad3,...)
bei ...Script... muss halt der Inhalt rein, der zusammengefasst werden soll also praktisch dein Copy-Befehl rein

ein Argument ist einfach nur eine Variable die an eine Sub oder Funktion übergeben wird, also brauchst du keine neuen Variablen definieren

Grüße
Exzellius
Bitte warten ..
Mitglied: bastla
06.02.2013, aktualisiert 07.02.2013
Hallo lordiliner!

Wenn es nur je 3 Quell-/Ziel-Ordnerpaare sind, würde ich das eher so anlegen (ungetestet):
01.
Option Explicit 
02.
 
03.
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject") 
04.
Dim Quelle, Ziel 
05.
Quelle = Array("C:\test\start\ordner1\", "C:\test\start\ordner2\", "C:\test\start\ordner3\") 
06.
Ziel   = Array("C:\test\ende\ordner1\" , "C:\test\ende\ordner2\" , "C:\test\ende\ordner3\" ) 
07.
 
08.
Dim i, File 
09.
For i = 0 To UBound(Quelle) 
10.
    For Each File In objFso.GetFolder(Quelle(i)).Files 
11.
        If LCase(objFso.GetExtensionName(File.Name)) = "txt" Then objFso.CopyFile File.Path, Ziel(i), True 
12.
    Next 
13.
Next
Bei einer größeren Anzahl von Ordnern wäre dann eine Steuerdatei mit jeweils Quelle und Ziel in einer Zeile meine erste Wahl.

Grüße
bastla
Bitte warten ..
Mitglied: lordiliner
07.02.2013 um 09:13 Uhr
Guten Morgen Exzellius und bastla,

dank eurer Hilfe bin ich nach allerhand Tests, Proben und Bastelarbeit zu einer Lösung gekommen.

Dafür danke ich euch beiden recht herzlich.

Viele Grüße

lordiliner
Bitte warten ..
Mitglied: bastla
07.02.2013 um 09:54 Uhr
Hallo lordiliner!

Glückwunsch - als krönenden Abschluss könntest Du Dein funktionierendes Script noch posten ...

Grüße
bastla
Bitte warten ..
Mitglied: 106543
07.02.2013 um 09:56 Uhr
Hi,

Glückwunsch !
war wohl eher zum größten Teil @bastla Werk

Grüße
Exzellius
Bitte warten ..
Mitglied: lordiliner
07.02.2013 um 10:42 Uhr
Hey,

also im Großen und Ganzen ist es eigentlich genau das, wass bastla hier gepostet hat.
Aber dank Exzellius hab ich nach stundenlanger Handwerkerei gestern festgestellt, dass Sub-Prozeduren momentan für mich noch zu kompliziert sind, als dass ich es hinbekommen würde. Aber das kommt noch. Ich bin da ja sehr lernwillig.

Also hier das fertige Script:

01.
Option Explicit  
02.
 
03.
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")  
04.
Dim Quelle, Ziel  
05.
Quelle = Array("C:\test\start\ordner1\", "C:\test\start\ordner2\", "C:\test\start\ordner3\") 
06.
Ziel   = Array("C:\test\ende\ordner1\", "C:\test\ende\ordner2\", "C:\test\ende\ordner3\") 
07.
 
08.
Dim i, File  
09.
Do 
10.
For i = 0 To UBound(Quelle)  
11.
    For Each File In objFso.GetFolder(Quelle(i)).Files  
12.
        If LCase(objFso.GetExtensionName(File.Name)) = "txt" Then objFso.CopyFile File.Path, Ziel(i), True  
13.
    Next  
14.
	wscript.sleep 10000 
15.
Next 
16.
Loop
Gruß

lordiliner
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
LAN, WAN, Wireless
Hat On Networks PL500PS WLAN-Funktion? (4)

Frage von Andy1987 zum Thema LAN, WAN, Wireless ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Microsoft Office
gelöst Excel Pdf Datei als Icon Symbol in Word einfügen per Drag and drop? (4)

Frage von Geforce zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Empfehlung günstiges ADSL2+ nur Modem (10)

Frage von TimMayer zum Thema Router & Routing ...

Server-Hardware
Lenovo Server System X 3650 M5 Festplatten (9)

Frage von Hendrik2586 zum Thema Server-Hardware ...