VBScript - Sub-Funktion einfügen
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:
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
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:
Option Explicit
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")
Const Folder11 = "C:\test\start\ordner1\"
Const Folder21 = "C:\test\ende\ordner1\"
Const Folder12 = "C:\test\start\ordner2\"
Const Folder22 = "C:\test\ende\ordner2\"
Const Folder13 = "C:\test\start\ordner3\"
Const Folder23 = "C:\test\ende\ordner3\"
Dim F1, F2, F3, item1, item2, item3
Set F1 = objFso.GetFolder(Folder11)
Set F2 = objFso.GetFolder(Folder12)
Set F3 = objFso.GetFolder(Folder13)
Do
For Each item1 In F1.Files
If Right(item1.Name, 3) = "txt" Then
objFso.CopyFile item1.Path, Folder21, True
End If
Next
For Each item2 In F2.Files
If Right(item2.Name, 3) = "txt" Then
objFso.CopyFile item2.Path, Folder22, True
End If
Next
For Each item3 In F3.Files
If Right(item3.Name, 3) = "txt" Then
objFso.CopyFile item3.Path, Folder23, True
End If
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201321
Url: https://administrator.de/forum/vbscript-sub-funktion-einfuegen-201321.html
Ausgedruckt am: 23.12.2024 um 20:12 Uhr
8 Kommentare
Neuester Kommentar
Hi,
geschätzte 3 Sec. Suche in Google.de:
http://www.instructables.com/id/VBS-Tutorial-Basics/
Grüße
Exzellius
geschätzte 3 Sec. Suche in Google.de:
http://www.instructables.com/id/VBS-Tutorial-Basics/
Grüße
Exzellius
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 ->
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
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 ->
call iRule(Pfad1,Pad2,Pfad3,...)
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
Hallo lordiliner!
Wenn es nur je 3 Quell-/Ziel-Ordnerpaare sind, würde ich das eher so anlegen (ungetestet):
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
Wenn es nur je 3 Quell-/Ziel-Ordnerpaare sind, würde ich das eher so anlegen (ungetestet):
Option Explicit
Dim objFso: Set objFso = WScript.CreateObject("scripting.filesystemobject")
Dim Quelle, Ziel
Quelle = Array("C:\test\start\ordner1\", "C:\test\start\ordner2\", "C:\test\start\ordner3\")
Ziel = Array("C:\test\ende\ordner1\" , "C:\test\ende\ordner2\" , "C:\test\ende\ordner3\" )
Dim i, File
For i = 0 To UBound(Quelle)
For Each File In objFso.GetFolder(Quelle(i)).Files
If LCase(objFso.GetExtensionName(File.Name)) = "txt" Then objFso.CopyFile File.Path, Ziel(i), True
Next
Next
Grüße
bastla