[VBS]variabele automatisch wijzigen

Pagina: 1
Acties:
  • 99 views sinds 30-01-2008

  • WaSteiL
  • Registratie: Juli 2003
  • Laatst online: 09:02
Beetje kromme titel, maar het zal aan de hand van het voorbeeld wel duidelijk worden. Ik gebruik VB-scripting voor verschillende taken in ons netwerk. Nu ben ik druk bezig om printers van de ene server naar de andere over te hangen. Op zich gaat dat perfect met mijn script, maar gezien het aantal printers zou het script nogal lang worden.

Voorbeeld:

VBScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
' Opgeven variabelen
Option Explicit
DIM objNetwork, objPrinter, intDrive, intNetLetter

SET objNetwork = CreateObject("WScript.Network")
SET objPrinter = objNetwork.EnumPrinterConnections

' Definieren Constante
' LET OP: Alle printers moeten met kleine letters geschreven worden.
CONST printeroud1   = "\\server01\printer01"
CONST printeroud2   = "\\server01\printer02"
CONST printeroud3   = "\\server01\printer03"
CONST printeroud4   = "\\server01\printer04"

CONST printernieuw1 = "\\server02\printer01"
CONST printernieuw2 = "\\server02\printer02"
CONST printernieuw3 = "\\server02\printer03"
CONST printernieuw4 = "\\server02\printer04"

' Controleren of de oude printers nog aanwezig zijn. Zo ja verwijderen
' en nieuwe toevoegen
For intDrive = 0 to objPrinter.Count -1 Step 2
intNetLetter = IntNetLetter +1
    IF Lcase(objPrinter.Item(intDrive +1)) = Printeroud1 THEN
        objNetwork.RemovePrinterConnection Printeroud1
        objNetwork.AddWindowsPrinterConnection Printernieuw1
    ElseIF Lcase(objPrinter.Item(intDrive +1)) = Printeroud2 THEN
        objNetwork.RemovePrinterConnection Printeroud2
        objNetwork.AddWindowsPrinterConnection Printernieuw1
    ElseIF Lcase(objPrinter.Item(intDrive +1)) = Printeroud3 THEN
        objNetwork.RemovePrinterConnection Printeroud3
        objNetwork.AddWindowsPrinterConnection Printernieuw3
    ElseIF Lcase(objPrinter.Item(intDrive +1)) = Printeroud4 THEN
        objNetwork.RemovePrinterConnection Printeroud4
        objNetwork.AddWindowsPrinterConnection Printernieuw4
Next
Wscript.Quit


Nu heb ik alleen iets meer dan 4 printers in het netwerk waar op gechecked moet worden dus je kan begrijpen dat het script qua lengte alleen maar langer en langer wordt terwijl dit veel korter zou moeten kunnen. Alleen daar gaat het mis.

Aangezien Printeroud en Printernieuw gelijktijdig oplopen dacht ik dat ik daar het wel automatisch zou kunnen laten tellen door een waarde + de teller samen gelijk te maken aan de CONST zodat de waarde daar automatisch zou komen. Helaas gaat dat niet op, want hij plaatst daar dan alleen de waarde.

Ik dacht dat te doen m.b.v. "Printeroud" &intNetLetter maar dat werkt dus niet aangezien je dan al met een waarde bezig bent.

Het probleem is vooral dat ik niet weet waarop ik precies moet zoeken. Iemand die mij op de weg kan helpen als de vraag iig duidelijk is voor jullie.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Wat jij zoekt zijn arrays :)

[ Voor 56% gewijzigd door CodeCaster op 22-02-2007 15:25 ]

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


  • WaSteiL
  • Registratie: Juli 2003
  • Laatst online: 09:02
Zo te zien ga ik daar wel uitkomen! _/-\o_ Dank je wel!
Ik wist ook wel dat het zou kunnen, maar moet je wel weten waarop je moet zoeken. :P

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Arrays zijn wel een héél bekend concept in de programmeerwereld die meestal in hoofdstuk 4 van de gemiddelde handleiding wel besproken worden. Iets meer moeite doen voor je een topic opent kan geen kwaad dus. :)

Daarnaast hoort je topic ook nog eens niet hier, zoals je in Waar hoort mijn topic? had kunnen lezen. Omdat je topic echter ook niet voldoet aan de eisen die er in andere subfora aan gesteld worden, doe ik het op slot in plaats van het te verplaatsen. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Dit topic is gesloten.