Top-Themen

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 VBScript - Sub-Funktion einfügen

Mitglied: lordiliner

lordiliner (Level 1) - Jetzt verbinden

06.02.2013 um 08:29 Uhr, 1923 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 ..
Ähnliche Inhalte
VB for Applications

VbScript: ADODB.Stream: Neue Zeile einfügen

gelöst Frage von BirdyBVB for Applications2 Kommentare

Hallo zusammen, ich habe hier ein vb-skript, welches einen ADODB.Stream erzeugt und diesen mit Text füllt. Ich würde gerne ...

VB for Applications

Per vbscript neues element an xml datei einfügen

gelöst Frage von aletriVB for Applications1 Kommentar

guten abend an alle das xml file, dass dieser script bearbeitet sieht leer so aus: <?xml version="1.0"?> -<DynPlacement.Document> -<Config> ...

Visual Studio

Sub für Speicherung der Settings

Frage von ahstaxVisual Studio1 Kommentar

Tach, ist es irgendwie sinnvoll möglich, ein Sub für die Speicherung von Settings zu schreiben? Ich hab nachfolgendes probiert: ...

VB for Applications

Per VBScript Zeile nach bestimmter Stelle einfügen dabei mit numerierung fortfahren!

gelöst Frage von aletriVB for Applications4 Kommentare

Guten Abende allerseits Dies ist ein Auszug der Datei an der eine Zeile eingefügt werden soll:

Neue Wissensbeiträge
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 11 StundenServer-Hardware2 Kommentare

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO Quelle: iLO ist gefährdet

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 20 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung30 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Batch & Shell
OU an eine Variable übergeben
gelöst Frage von oesi1989Batch & Shell22 Kommentare

Hallo, ich würde gerne alle OUs an eine Variable übergeben und danach einen Teil per .remove entfernen. Das Anzeigen ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...