VBS Script zur Auswahl von Firmennummer und Benutzernummer sowie Verarbeitung
Ich möchte ein Script schreiben mit dem ich für 9 Benutzer die jeweils in 2 Firmen Zugriff auf ein weiteres Script bekommen sollen,daß durch dieses Script als Desktop Link installiert wird.
1. Es wird die Firmennummer abgefragt (als nummer)
2. Es wird der Benutzername abgefragt (als nummer)
Dieser Teil des Scripts existiert schon und funktioniert auch.
Wie kann ich mir nun das Leben leichter machen ,ohne jeden Fall einzeln mit if abzufragen
Ihr würdet mir sehr weiterhelfen.
Vielen Dank
Gruß
Claus
PS: Kann ich die Benutzernamen auch aus einer TXT Datei auslesen lassen ?
1. Es wird die Firmennummer abgefragt (als nummer)
2. Es wird der Benutzername abgefragt (als nummer)
Dieser Teil des Scripts existiert schon und funktioniert auch.
Dim Firma
Dim strProgram
Dim objShortcut
Dim objShell
Dim User
Firma = inputbox("Geben sie die Firmenbezeichnung ein " & vbnewline & vbnewline & "1 = bbb" & vbnewline & "2 = kg","Desktop Link - Fenstertitel")
if Firma ="" then
WScript.Quit
end if
if isnumeric(Firma) = false then
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"
WScript.Quit
else
end if
if Firma > 2 or Firma = 0 then
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"
WScript.Quit
else
end if
-------------------------------------------------------------------------------------------------------------------------
' Abfrage Benutzer
User = inputbox("Geben sie die Benutzernummer ein " & vbnewline & vbnewline & "1 = Max Muster" & vbnewline & "2 = Test Testermann" ,"Desktop Link Script")
-------------------------------------------------------------------------------------------------------------------------
Hier beginnen meine Probleme.
Es soll nun der gewählte Benutzer als Bestätigung mit dem msgbox Befehl ausgegeben werden.
Dies sollte mit einer Schleife passieren,doch ich weiß nicht wie,da die Benutzer selber ja nicht definiert sind.
Danach soll die Verarbeitung erfolgen:
Es müssen also alle mögliche Firma / User kombinationen die möglich sind abgefragt werden und dann jeweils anders weiterverarbeitet werden.
-------------------------------------------------------------------------------------------------------------------------
if user = 1 and Firma = 1 then
strProgram ="c:\LCS\verdi Claus bbb.vbs"
Const strProgramtitel = "Verdi - Name Firma 1"
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "PFAD zur Datei" , "C:\lcs\" ' Script kopieren
shortcutwrite
end if
-----------------------------------------------------------------------------------------------------------------------
Die eigentliche Verarbeitung funktioniert - sub shortcutwrite()
sub shortcutwrite()
Const strWPath = "c:\LCS\" 'Arbeitsverzeichnis
Set objShell = WScript.CreateObject("Wscript.Shell")
strLPfad = objShell.SpecialFolders("Desktop")
Set objShortcut = objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath = strProgram
objShortcut.Description = strProgramtitel
objShortcut.WorkingDirectory = strWPath
objShortcut.IconLocation = "c:\lcs\verdi\lcsverdi.exe,0"
objShortcut.Save
end sub
Ihr würdet mir sehr weiterhelfen.
Vielen Dank
Gruß
Claus
PS: Kann ich die Benutzernamen auch aus einer TXT Datei auslesen lassen ?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 69991
Url: https://administrator.de/contentid/69991
Ausgedruckt am: 17.11.2024 um 09:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo cbli
Falls ich Dich richtig verstanden habe, könnte das etwa so aussehen:
Bitte zu beachten, dass Arrays in VBS null-basiert sind, also der erste Benutzer in Benutzer(0) und der 9. Benutzer in Benutzer(8) gespeichert wird ...
Grüße
bastla
Falls ich Dich richtig verstanden habe, könnte das etwa so aussehen:
Const Benutzerdatei = "Pfad zur Datei mit den Benutzernamen"
Firma = inputbox("Geben sie die Firmenbezeichnung ein " & vbnewline & vbnewline & "1 = bbb" & vbnewline & "2 = kg","Desktop Link - Fenstertitel")
if isnumeric(Firma) = false then
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"
WScript.Quit
end if
if Firma > 2 or Firma = 0 then
msgbox "Bitte nur 1 oder 2 eingeben",16,"Hinweis"
WScript.Quit
end if
'Firmennamen ermitteln
Select Case Firma
Case 1
Firmenname = "bbb"
Case 2
Firmenname = "kg"
Case Else 'Kann eigentlich nach den Abfragen oben nicht erreicht werden ...
MsgBox "Ungültige Firma!"
End Select
' Abfrage Benutzer
'Aus Textfile einlesen ...
Set fso = CreateObject("Scripting.FileSystemObject")
Benutzer = Split(fso.OpenTextFile(Benutzerdatei, 1).ReadAll, vbCrLF)
'... oder im Script hinterlegen:
'Benutzer = Array("Max Muster", "Test Testermann", "...")
AnzBenutzer = UBound(Benutzer) + 1
Eingabetext = "Geben sie die Benutzernummer ein " & vbCrLF
For i = 0 To AnzBenutzer - 1 'Achtung: Erste Benutzernummer = 0
Eingabetext = Eingabetext & vbCrLF & Right(" " & CStr(i + 1), 2) & " = " & Benutzer(i)
Next
User = InputBox(Eingabetext, "Desktop Link Script")
If IsNumeric(User) Then
UserNr = CInt(User)
Else
Msgbox "Bitte nur 1 bis " & CStr(AnzBenutzer) & " eingeben!", vbCritical, "Hinweis"
WScript.Quit
End if
If UserNr < 1 Or UserNr > AnzBenutzer Then
Msgbox "Bitte nur 1 bis " & CStr(AnzBenutzer) & " eingeben!", vbCritical, "Hinweis"
WScript.Quit
End If
Benutzername = Benutzer(UserNr - 1)
'Es soll nun der gewählte Benutzer als Bestätigung mit dem msgbox Befehl ausgegeben werden.
MsgBox "Gewählter Benutzername: " & Benutzername
strProgram ="c:\LCS\verdi Claus " & Firmenname & ".vbs"
strProgramtitel = "Verdi - " & Benutzername & " - " & Firmenname
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "PFAD zur Datei" , "C:\lcs\" ' Script kopieren
shortcutwrite
Grüße
bastla
Hallo cbli!
Vorweg: Stell bitte Codebeispiele in < code>-Tags (ohne die Leerstelle).
Mit richtig gesetzten Anführungszeichen sollte der folgende Teil etwa so aussehen:
Noch ein Hinweis (siehe auch in Deinem anderen Thread): "Set fso = ..." (und natürlich auch "Set WshShell = ...") brauchst Du nur einmal durchzuführen ...
Grüße
bastla
Vorweg: Stell bitte Codebeispiele in < code>-Tags (ohne die Leerstelle).
Jetzt zeigt er mir zwar die Benutzer an ,aber sobald ich eine Nummer eingebe
kommt der Fehler:
Index außerhalb des gültigen Bereichs [number: 2]
Kann ich (mit dem aus Deinem Post heruntergeladenen Code) nicht nachvollziehen ...kommt der Fehler:
Index außerhalb des gültigen Bereichs [number: 2]
Mit richtig gesetzten Anführungszeichen sollte der folgende Teil etwa so aussehen:
vbscript = "verdi " & Benutzername & " " & Firmenname & " .vbs"
strProgram = "c:\LCS\verdi " & Benutzername & " " & Firmenname & ".vbs"
strProgramtitel = "Verdi - " & Firmenname
Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "Pfad zum Scrip\" & vbscript, "C:\lcs\" ' Script kopieren
Wobei es hilfreich wäre ,wenn ich später die Abkürzung bbb irgendwie gegen den vollen
Firmennamen austauschen könnte.
Dies sollte erst nach Eingabe der Firmennummer geschehen.
Schau Dir dazu das "Select Case"-Konstrukt oben an ...Firmennamen austauschen könnte.
Dies sollte erst nach Eingabe der Firmennummer geschehen.
Gibt es eine Möglichkeit in VB Script eine Art Menü zu generieren ?
Jein - an sich hat VBS kein Fenster, in welches Du schreiben könntest, sondern bietet eben für die Interaktion MsgBox und InputBox - allerdings lässt sich aus VBS heraus unter Verwendung des Objektes "InternetExplorer.Application" eine Webseite (HTML) erzeugen und anzeigen ...Grüße
bastla