Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[VBS] Meerdere parameters uitvoeren

Pagina: 1
Acties:

  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 11-04-2024
Hallo,

Ik wil graag meerdere parameters doorgeven aan een VBS script. Echter lukt het wel met 1 parameter maar niet met meerder.

Tot nu toe heb ik dit:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run(Wscript.Arguments(0))


Ik kan nu bijvoorbeeld het script gebruiken door: script.vbs notepad
Maar niet: script.vbs notepad document.txt

Hoe kan ik dit ombouwen tot een script wat meerdere paramters na elkaar zet?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Voor code hebben we code tags tags i.p.v. table tags ;)

Wat heb je nou precies geprobeerd dan om te werken met meerdere parameters? Want ik zie daar niets van terug? Je geeft wel aan dat 't niet lukt, maar wat lukt er dan niet?

Overigens, het zijn parameters (heb je topictitle even gefixed) maar jij doelt op argumenten; dat googled waarschijnlijk makkelijker. Wat ik overigens gek vind, want als ik op vbs parameters zoek zijn de eerste handvol hits ook allemaal relevant en dus snap ik niet helemaal waarom je daar niets zinnigs tussen zou kunnen vinden?

[ Voor 41% gewijzigd door RobIII op 04-11-2013 15:46 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • RedCellNL
  • Registratie: September 2003
  • Laatst online: 11-04-2024
Ok, zal ik in t vervolg gebruiken.

Ik heb al geprobeerd:

WshShell.Run(Wscript.Arguments(0,9))

WshShell.Run(Wscript.Arguments(0-9))

Daarnaast het omzetten via met variabelen. En een hoop code op internet geprobeerd aan te passen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En de documentatie er als eens bij gepakt? Hoe kom je aan een Wscript.Arguments(0-9) bijvoorbeeld :? Je maakt me niet wijs dat je dat ergens bent tegen gekomen in documentatie en/of een tutorial? Ook hier geldt weer dat een simpele google opdracht deze vraag prima voor je kan beantwoorden.

Long story short: als je 2 (of meer) argumenten wil gebruiken dan benader je die als:

VBScript:
1
2
foo = Wscript.Arguments(0)
bar = Wscript.Arguments(1)


Een voorbeeld hoe je notepad met argumenten start staat zelfs letterlijk in de eerste link waar ik in deze post naar verwijs:

VBScript:
1
2
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad " & WScript.ScriptFullName

Vervang vervolgens "%windir%\notepad" met Wscript.Arguments(0) en WScript.ScriptFullName met Wscript.Arguments(1) et voila (hou er rekening mee dat je nog een spatie tussen de argumenten moet zetten!).

Je krijgt dan iets als:
code:
1
Shell.Run arg(0) + spatie + arg(1)


Ik hou het hier met opzet op pseudocode; met bovenstaande informatie / documentatie (en mogelijk het feit dat 'strings aan elkaar plakken' concatenation wordt genoemd ==> documentatie!) moet je er uit komen.

[ Voor 55% gewijzigd door RobIII op 04-11-2013 16:09 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Armageddon_2k
  • Registratie: September 2002
  • Laatst online: 19-11 15:57

Armageddon_2k

Trotse eigenaar: Yamaha R6

Goed, hier even een voorzetje, maar ik denk dat je je even moet gaan verdiepen.
Ga een spelen met wat tutorials.

Visual Basic:
1
2
3
4
5
6
7
8
9
Set WshShell = WScript.CreateObject("WScript.Shell")

'Hier zet je het command inelkaar voor WsShell.Run
'Dit command is bijvoorbeeld: notepad HelloWorld.txt
'WshShell.Run verwacht een string, en zal je als dusdanig moeten behandelen.
strCommand = Wscript.Arguments(0) & " " & Wscript.Arguments(1)

'Uitvoeren van je command
WshShell.Run(strCommand)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Armageddon_2k schreef op maandag 04 november 2013 @ 16:10:
Goed, hier even een voorzetje, maar ik denk dat je je even moet gaan verdiepen.
Give a man a fish and feed him for a day. Teach a man how to fish and feed him for a lifetime.
Ik ben niet voor niets zo omslachtig bezig; ik had 't ook in 1 zin kunnen voorkauwen en "voorzetten" ;) Was makkelijker voor mij geweest maar dan hebben we volgende week wéér een topic ;)

[ Voor 30% gewijzigd door RobIII op 04-11-2013 16:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1