Liebe Leser,
Wenn dies Ihr erster Besuch hier ist, lesen Sie bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Sie müssen sich vermutlich registrieren, bevor Sie Beiträge verfassen können. Klicken Sie rechts auf 'Jetzt registrieren.', um den Registrierungsprozess zu starten.
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 9 von 14
  1. #1
    Registriert seit
    01.2010
    Beiträge
    19

    VBS Befehle Verknüpfen?

    Hallo

    mal eine (vielleicht dumme) Frage, aber wie kann ich in VBS Befehle miteinander verknüpfen?

    In Batch macht man das ja mit &, doch in VBS funktioniert das nicht.

    Danke schon im Voraus

    spook93

  2. #2
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    Irgendwie steh ich gerade auf der Leitung. Kannst du mal ein Beispiel geben was du genau machen willst ?

    *Kopfkratz* Befehle verknüpfen ? Oder meinst du Zeichenketten verknüpfen ? Denn Theoretisch (je nach dem was du vor hast,) geht das mit dem und Zeichen.

    Hier mal ein einfaches Beispiel

    Code:
    DIM teil1, teil2
    
    teil1 = "den ersten teil"
    teil2 = "dem zweiten Teil"
    
    MsgBox "Ich verknüpfe hier bequem durch das und Zeichen " & teil1 & " mit " & teil2
    MfG VB-Coder

  3. #3
    Registriert seit
    01.2010
    Beiträge
    19
    Ja genau sowas hab ich gesucht!

    Will mit einer Inputbox eine Abfrage mit 2 möglichen Antworten durchführen, die Antworten als Variable setzen und diese dann ausgeben.

    Soweit war ich schon, bloß dein code hat mir noch gefehlt

    Vielen Dank!

    Und noch eine Frage: Gibt es in VBS auch 'nen GoTo - Befehl (Sprungmarke) ?

    In VB geht das aber in VBS sagt er mir immer "Anweisung erwartet"

  4. #4
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    GoTo gibt es in VBS nicht.

    Wenn du sagst was du vor hast kann ich dir eventuell ne Alternative nennen.
    MfG VB-Coder

  5. #5
    Registriert seit
    01.2010
    Beiträge
    19
    am besten ich poste mal mein ganzes werk

    das wird bestimmt für einen Profi ziemlich durcheinander aussehen, doch ich fange ja auch gerade erst an

    Code:
    on error resume next
    
    dim account, passwort, fso, File, sText
    
    Const ForWriting = 2
    
    set wshell = CreateObject("WScript.Shell")
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    Set filesys = CreateObject("Scripting.FileSystemObject")
     
    Auswahl = Inputbox("Was Wollen Sie tun?" _
    & vbCrLf & "1 = Einen Account anlegen" _
    & vbCrLf & "2 = Einen Angelegten Account löschen" _
    & vbCrLf & "3 = Hife", "AccountCreator v1.0", "")
    
    If Auswahl = 1 Then
    
    computername = WShell.ExpandEnvironmentStrings("%computername%")
    if filesys.FolderExists("\\" & computername & "\Admin$\System32") then
    wshell.popup "Du bist Administrator! Das Programm wird fortgesetzt...",5,"Fenster schließt in 5 Sekunden" 
    else
    wshell.popup "Du bist NICHT Administrator! Das Programm wird beendet...",5,"Fenster schließt in 5 Sekunden" 
    wscript.quit
    end if
    
    Do
    
    account = inputbox ("Bitte geben Sie den Benutzernamen Ihres neuen Accounts ein!","Name?","Admin")
    if account.text = "" then
    msgbox "Sie müssen einen Benutzernamen eingeben!",vbOkOnly + vbCritical,"Fehler"
    Loop While account
    end if
    next
    
    Do
    
    passwort = inputbox ("Bitte geben Sie das Passwort Ihres neuen Accounts ein!","Passwort?","password")
    if password.text = "" then
    msgbox "Wollen Sie wirklich kein Passwort vergeben?",vbYesNo + vbQuestion,"Frage"
    end if
    next
    
    if vbYes then
    wshell.popup "Wird gespeichert...",5,"Fenster schließt in 5 Sekunden" 
    else
    Loop While passwort
    end if
    next
    
    msgbox "Ihre Anmeldedaten lauten: """&account&""" ""und"" """&passwort&"""",64,"Ihre Anmeldedaten" 
    set File1 = fso.OpenTextFile("acc.tmp", ForWriting, true)
    sText1 = ""&account&""
    File1.WriteLine(sText1)
    File1.Close
    set File2 = fso.OpenTextFile("pass.tmp", ForWriting, true)
    sText2 = ""&pass&""
    File2.WriteLine(sText2)
    File2.Close
    wshell.run "UserAdd.bat", 0, True
    wshell.popup "Wird gespeichert...",5,"Fenster schließt in 5 Sekunden" 
    fso.GetFile("UserAdd.bat").Delete
    msgbox "Der Account wurde erfolgreich angelegt",64,"Fertig!"
    
    Else 
    
    If Auswahl = 2 Then
    
    Do
    
    account = inputbox ("Bitte geben Sie den Benutzernamen Ihres angelegten Accounts ein!","Name?","Admin")
    if account.text = "" then
    msgbox "Sie müssen einen Benutzernamen eingeben!",vbOkOnly + vbCritical,"Fehler"
    Loop While account
    end if
    next
    
    set File1 = fso.OpenTextFile("acc.tmp", ForWriting, true)
    sText1 = ""&account&""
    File1.WriteLine(sText1)
    File1.Close
    wshell.run "DeleteUser.bat", 0, True
    wshell.popup "Wird gespeichert...",5,"Fenster schließt in 5 Sekunden" 
    fso.GetFile("DeleteUser.bat").Delete
    msgbox "Der Account wurde erfolgreich gelöscht",64,"Fertig!"
    
    Else 
    
    If Auswahl = 3 Then
    
    wshell.run "readme.txt"
    
    End If
    End If
    End If

    Leider sind da noch ein paar Fehler drinn.

    Hab bei Google inzwischen die Do-Loop-Methode gefunden, doch ich erhalte ständig den Fehler "do ohne loop"

  6. #6
    Registriert seit
    06.2006
    Beiträge
    1.907
    Hallo Spook

    Ich habe nicht geschaut, ob Dein Code allenfalls funktionieren könnte, zuerst musst Du darin für logische Ordnung sorgen >>>

    Du hast Code-Teile an verschiedenen Orten gesammelt.
    Das ist der normale Weg, man muss das Rad nicht immer wieder neu erfinden wollen...
    ...aber man muss dann diese Teile, die ja kleine eigene Progrämmchen sind, zusammenhalten, sonst ergeben sie keinen Sinn.

    Dazu müssen bei mehrschichtigen Codes die einzelnen Schichten mit Tabulator geschrieben werden. Dem Script-Interpreter ist das egal, aber Dir nicht > DEIN Gedächtnis ist nicht so gut wie seines.
    Nur so kannst Du sofort sehen, ob alle Do/Loop-Schleifen oder If/Then-Abfragen auch richtig abgeschlossen wurden... und nur so können fremde Leute den Code auch vernünftig lesen...

    Im Prinzip so >>>
    Code:
    If bla1 = z Then
        blabla
        If bla2 = y Then
            Do
                bleble
                If bla3 = x Then
                    Do
                        blibli
                        bloblo
                        blublu
                    Loop Until w > v
                Else
                    U = t
                End If
                s = U ^ 2
                If s > 0 Then Exit Do
            Loop
        ElseIf bla2 = p Then
            s = m
        Else
            MsgBox "mierda"
        End If
    Else
        MsgBox "bravo"
    End If
    So siehst Du bei Dir, dass Zeilen aus Do-Schleifen und If-Abfragen ineinander greifen >>> Do > If > Loop > End If
    Das dürfen sie nicht.

    Auch das Schleifenwort Next fällt dann auf, es beendigt eine Schleife, die es gar nicht gibt.
    Die vielen Next stammen wohl aus Versuchen mit einer For/Next-Schleife >>> weg damit.

    Wenn das einmal zerpflückt und geordnet ist, wirst Du selbst Fehler entdecken, für den Rest sind wir dann hier...


    Nur noch soviel zu Deinem Code >>>

    account = InputBox("Bitte geben Sie.....Benutzernamen...",........)
    If account.Text = "" Then
    >>> account ist eine Variable, es muss also heissen >
    If account = "" Then

    Mit diesen Inputboxen in Do/Loop-Schleifen vergewaltigst Du den User ...wenn der Code denn richtig funktionieren würde...

    1. wird der Code nie "" zurückgeben, entweder gibt er die User-Einagbe zurück... oder dann halt "Admin", das hast Du ja explizit als Default-Eingabe gesetzt. Nur wenn der User zuerst den Default löscht und dann nichts eingibt, kommt "", oder bei "Abbruch"...

    2. kann der User bei der Eingabe merken, dass ihm eine Angabe noch fehlt, dann muss er aussteigen können...
    ...sonst bleibt er in der Do/Loop-Schleife gefangen bis zu seiner Pensionierung...

    Ich würde das ohne Do/Loop und ohne Default-Eingabe einfach so machen >
    account = InputBox("Bitte geben Sie den Benutzernamen Ihres neuen Accounts ein!", "Name?")
    If account = "" Then wscript.Quit

    "Abbrechen" oder keine Eingabe liefert dann "" ......und der Script beendet sich.
    Wenn ein vertrottelter User meint, er könne ohne Eingabe weiterkommen... dann hat er wieder etwas gelernt !

    Gruss Urs
    Geändert von Urs2 (02.04.2010 um 03:29 Uhr)

  7. #7
    Registriert seit
    07.2003
    Ort
    Beim Rathaus schräg hoch
    Beiträge
    8.202
    Falscher Thread, sorry !

  8. #8
    Avatar von VB-Coder
    VB-Coder ist offline Megabyte
    Mein System
    MainboardMSI P35 Neo (MS-7360)
    ProzessorIntel QuadCore Q6600 - 2400 Mhz - 2x 4MB L2 Cache
    GrafikkarteGainward GeForce 8600 GT - 1024 MB DDR2 - 128bit - PCIe
    RAM2x 2GB Transcend JM4GDDR2-8K - DDR2-800 (400 MHz)
    Festplatte(n)WesternDigital WD5000AAKS-65YGA0 (500 GB - SATA) Seagate ST3120022A (120 GB - IDE)
    Andere LaufwerkeHL-DT-ST DVD-RAM GSA-H55L
    Netzteil (inkl. Spannungswerte)Apevia ATX-AS600W-BK Input: 230V | 50 Hz | 5A Total Output: 600W max +12,+5,+3.3 Combine: 580W
    SoundkarteonBoard Sound
    BetriebssystemWindows 7 Home Premium 64bit
    AV-SoftwareAvira AntiVir Personal
    FirewallComodo Firewall Pro
    System-/OptimierungstoolsSpybot - Search & Destroy HijackThis Malwarebytes' Anti-Malware
    Art des InternetzugangsDSL-16000
    Router/ModemArcor SpeedModem200
    MonitorVideoSeven 19" TFT
    Registriert seit
    04.2007
    Ort
    406XX / NRW
    Beiträge
    1.684
    Grundlegend würde ich das ganze so aufbauen
    Kommentare findest du im Code.

    Code:
    ON Error Resume Next
    
    DIM Aktion,Benutzer,Passwort
    
    Aktion = InputBox("Was wollen Sie tun ?" &vbCrlf & "1 = Account anlegen" &vbCrlf & "2 = Account löschen" &vbCrlf & "3 = Hilfe","Account Creator","3")
    
    SELECT CASE Aktion
        CASE 1
        MsgBox "Es wird ein neuer Account angelegt."
        Do Until Benutzer > ""
        Benutzer = InputBox("Bitte geben Sie den Benutzernamen für den neuen Account ein !","neuen Benutzer erstellen","Testaccount")
        Loop
        Do Until Passwort > ""
        Passwort = InputBox("Bitte geben Sie das Benutzerpasswort für den neuen Account ein !","neuen Benutzer erstellen","geheimesPasswort")
        Loop
        MsgBox "Neuer Account wird mit folgenden Daten erstellt..." &vbcrlf & "Benutzername:" & " " & Benutzer &vbCrlf & "Benutzerpasswort:" & " " & Passwort
        
        'Hier kommt dann der ganze Code zum Anlegen des Accountes hin
        
        CASE 2
        MsgBox "Es soll ein Account gelöscht werden"
        'Hier kommt der Code zum Löschen des Accountes hin
        CASE 3
        MsgBox "Sie benötigen also Hilfe"
        'Hier kommt der ganze Code für die Hilfe hin
        CASE ELSE
        MsgBox "Nanu ! Hier stimmt was nicht. Sie haben sich weder für Punkt 1, noch für Punkt 2 und auch nicht für Punkt 3 entschieden"
        'Hier das was passiert wenn die Eingabe nicht 1, 2 oder 3 war.
        'Anmerkung: Ich würde dann autom. die Hilfe öffnen
        'Demzufolge könnte man auch Case 3 rausnehmen und die Hilfe direkt unter Case Else setzen
        'Das würde bewirken das der User automatisch die Hilfe vorgesetzt bekommt, wenn er etwas anderes wie 1 oder 2 wählt
    END SELECT
    MfG VB-Coder

  9. #9
    Registriert seit
    01.2010
    Beiträge
    19
    wow!

    @ urs2: werd ich mal so machen, seh selber net mehr durch

    @ vbcoder: danke werd ich gleich mal ausprobieren

Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
12
Content Management by InterRed