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

Auswahl und Kopierscript erstellen mit WSH

Frage Entwicklung Batch & Shell

Mitglied: Robbe83

Robbe83 (Level 1) - Jetzt verbinden

28.03.2013 um 11:43 Uhr, 1450 Aufrufe, 9 Kommentare

Vorab:

Ja ich weiß das es eine sehr einfache Frage ist und es sicherlich 1000'de Anleitungen im Internet gibt aber ich frage trotzdem.

Also bitte erspart mir irgendwelche "doofen" Kommentare - ich steh grade aufm Schlauch was eine Lösung angeht und erhoffe mir auf diese Art und Weise dem Problem Herr zu werden.


Ich möchte mir ein ganz einfaches Script erstellen was folgendes macht:

1. soll eine Abfrage stattfinden (msgbox) wo ich einen von drei Namen eingeben muss

2. je nachdem welcher von den drei namen eingegeben wurde sollen entsprechende Dateien kopiert werden

3. wird keiner der drei namen eingegeben soll die Abfrage erneut starten

4. die Abfrage soll so lange neu starten bis 3 mal entweder kein Name und keiner der drei vorgegebenen Namen eingegeben wurde


Ich hab das ganze schon mit IF/Then/Else versucht - was auch teilweise klappt.
Allerdings kopiert er entweder gar nix oder er kopiert alle Dateien von allein drei Namen.

Mit freundlichen Grüßen

Robert
Mitglied: SlainteMhath
28.03.2013 um 11:46 Uhr
Moin,

wie wär's denn wenn du den Code den du bisher erarbeitet hast einfach mal postest? Es wird dir hier sicher keiner (umsonst ) ein fertiges Script reinstellen.

lg,
Slainte
Bitte warten ..
Mitglied: Robbe83
28.03.2013, aktualisiert um 12:20 Uhr
Ok, das dass keiner umsonst macht ist mir klar .

Hier ist der Code von einem meiner Versuche (kopieren tut es so nix).


01.
 
02.
Dim wsh : Set wsh = CreateObject("WScript.Shell") 
03.
Dim objFSO 
04.
	Set objFSO = CreateObject("Scripting.FileSystemObject") 
05.
Dim b1 
06.
b1 = "name1, name2, name3" 
07.
 
08.
Eingabefenster = InputBox("Bitte Namen eingeben") 
09.
 
10.
If b1 = "name1" Then 
11.
	objFSO.copyfile "\\xxx\xxx\xxx\v1\111.txt", "d:\1.txt" 
12.
	objFSO.copyfile "\\xxx\xxx\xxx\v1\112.txt", "d:\2.txt" 
13.
	objFSO.copyfile "\\xxx\xxx\xxx\v1\113.txt", "d:\3.txt" 
14.
ElseIf b1 = "name2" Then 
15.
	objFSO.copyfile "\\xxx\xxx\xxx\v2\211.txt", "d:\4.txt" 
16.
	objFSO.copyfile "\\xxx\xxx\xxx\v2\212.txt", "d:\5.txt" 
17.
	objFSO.copyfile "\\xxx\xxx\xxx\v2\213.txt", "d:\6.txt" 
18.
ElseIf b1 = "name3" Then 
19.
	objFSO.copyfile "\\xxx\xxx\xxx\v3\311.txt", "d:\7.txt" 
20.
	objFSO.copyfile "\\xxx\xxx\xxx\v3\312.txt", "d:\8.txt" 
21.
	objFSO.copyfile "\\xxx\xxx\xxx\v3\313.txt", "d:\9.txt" 
22.
Else 
23.
InputBox("Bitte Namen eingeben") 
24.
End If 
25.
 
Irgendwie fehlt es mir am grundlegenden Verständis für diese Anweisungen... und so richtig schlau werd ich aus Fachbüchern auch nicht was das angeht.

Mit freundlichen Grüßen

Robert
Bitte warten ..
Mitglied: SlainteMhath
28.03.2013 um 12:05 Uhr
Die Variable b1 brauchst Du nicht. Ersetze "b1" in den If/ElseIf Statments durch "Eingabefenster", dann sollte das Kopieren funktionieren.
Bitte warten ..
Mitglied: bastla
28.03.2013 um 12:15 Uhr
... und verwende "Dim" zusammen mit "Option Explicit" und daher für alle Variablen oder gleich gar nicht ...

Für das Posten von Code gibt es hier übrigens eine passende Formatierung (lässt sich auch nachträglich hinzufügen).

Grüße
bastla
Bitte warten ..
Mitglied: Robbe83
28.03.2013, aktualisiert um 12:23 Uhr
Ok das war ja mal mehr als einfach. Funktioniert super.

Was aber noch gut wäre das wenn ich einen falschen Namen eingebe das er mir zum einen einen Fehler anzeigt und zum anderen dann aber das script nicht beendet sondern mir noch zwei Versuche durch ein Eingabefenster gibt den richtigen Namen einzugeben.

Über

01.
Else 
02.
MsgBox "Falscher Name"
gibt er mir zwar den Fehler aus aber dann beendet er das Script.

Mit freundlichen Grüßen

Robert
Bitte warten ..
Mitglied: SlainteMhath
28.03.2013, aktualisiert um 12:28 Uhr
Das geht mit einer Do/loop Schleife, etwa so:
01.
dim i 
02.
i=0 
03.
do  
04.
  If Eingebefenster = .... 
05.
    ... 
06.
    exit do 
07.
  elseif  ... 
08.
    ... 
09.
    exit do 
10.
  elseif  ... 
11.
    ... 
12.
    exit do 
13.
  Else 
14.
    i=i+1 
15.
    if i=3 then  
16.
        msgbox "Zuviele Fehler!" 
17.
        exit do 
18.
    end if 
19.
  End If 
20.
loop
Bitte warten ..
Mitglied: bastla
28.03.2013 um 12:40 Uhr
... oder auch so:
01.
Versuche = 3 
02.
Do 
03.
    Eingabefenster = InputBox("Bitte Namen eingeben") 
04.
    Select Case LCase(Eingabefenster) 
05.
        Case "name1" 
06.
            objFSO.copyfile "\\xxx\xxx\xxx\v1\111.txt", "d:\1.txt" 
07.
            objFSO.copyfile "\\xxx\xxx\xxx\v1\112.txt", "d:\2.txt" 
08.
            objFSO.copyfile "\\xxx\xxx\xxx\v1\113.txt", "d:\3.txt" 
09.
            Versuche = -1 
10.
        Case "name2" 
11.
            ... 
12.
        Case "name3" 
13.
            ... 
14.
        Case Else 
15.
            Versuche = Versuche - 1 
16.
    End Select 
17.
Loop Until Versuche <= 0 
18.
If Versuche = 0 Then MsgBox "Zu viele Fehler!"
Grüße
bastla
Bitte warten ..
Mitglied: Robbe83
28.03.2013 um 13:08 Uhr
Erstmal Vielen Dank an euch Beide - die Varianten funktionieren super.

Eine Frage hätte ich aber noch.

Ist es grundsätzlich egal ob man das in der Schleife durch If/Then Anweisungen oder durch Case Anweisungen erledigt?

Oder gibt es da bei der einen oder anderen Variante Einschränkungen?

Mit freundlichen Grüßen

Robert

PS: Ich merke schon, ich hab noch verdammt viel übers Scripten/Programmieren zu lernen ;D
Bitte warten ..
Mitglied: SlainteMhath
28.03.2013 um 13:18 Uhr
Ist es grundsätzlich egal ob man das in der Schleife durch If/Then Anweisungen oder durch Case Anweisungen erledigt?

Vom Programmablauf her ist es egal. Schöner finde ich aber eigentl. auch Select...case Konstrukte
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Netzwerkgrundlagen
IPsec - .conf und .secret erstellen aus Gruppe und User (16)

Frage von MaxMLe zum Thema Netzwerkgrundlagen ...

Server-Hardware
gelöst Hilfe bei einer Server (Hardware) auswahl (30)

Frage von bjk190368 zum Thema Server-Hardware ...

RedHat, CentOS, Fedora
gelöst Erstellen von Desktopverknüpfungen und Anpassung der Taskleiste (2)

Frage von honeybee zum Thema RedHat, CentOS, Fedora ...

Vmware
ESXI Template erstellen (2)

Frage von Phill93 zum Thema Vmware ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...