[XP] WSH/VBS Commando's uitvoeren en schrijven naar bestand

Pagina: 1
Acties:

  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 07:56
Ik ben bezig om een controlescript te maken of IPv6 is geïnstalleerd op een werkstation. Dat wil ik doen door dit commando:

ipv6 if > C:\ipv6.txt

De uitvoer van het ipv6 if commando wordt dan naar het genoemde bestand weggeschreven. Indien ipv6 niet is geïnstalleerd, zal dit bestand 140 bytes groot zijn. Dat is dus niet zo lastig.

In mijn VBS script probeer ik het volgende:

code:
1
2
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run("ipv6 if > C:\ipv6.txt")


Helaas, dit werkt niet. Het betreffende bestand wordt niet aangemaakt. Als je bijvoorbeeld cmd gebruikt, werkt het wél. Ook andere applicaties worden zonder meer gestart.

Helaas is op internet weinig informatie over IPv6 en VBS te vinden, dus hopelijk heeft iemand hier een helder idee :).

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

Ik denk dat je er dubbele quotes omheen moet zetten:
code:
1
oShell.run("""ipv6 if > C:\ipv6.txt""")

kaart != map && bottel != fles
Wacht op antwoord


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 07:56
j_du_pee schreef op 28 oktober 2004 @ 14:50:
Ik denk dat je er dubbele quotes omheen moet zetten:
code:
1
oShell.run("""ipv6 if > C:\ipv6.txt""")
Dank je voor de tip, helaas had ik dit al geprobeerd (met het escape character 34) maar het heeft niet geholpen.

Ook 'exec' ipv 'run' heeft geen effect overigens.

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

sja, ik ken het programma ipv6 niet, dus kan er ook niet veel aan testen oid. Volstaat een check of de exe bestaat niet :?
code:
1
if oFSO.fileExists ...


of anders gooi je dat dos commando in een .bat, en run je die vanuit je script
[/omweggetje] ;)

of is er geen registry key waar je op kunt checken oid :?

[ Voor 11% gewijzigd door j_du_pee op 28-10-2004 15:00 ]

kaart != map && bottel != fles
Wacht op antwoord


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 07:56
Dat van dat .bat (of .cmd) had ik inderdaad ook al bedacht, maar ik vind het geen nette oplossing. Indien er geen andere oplossing is dan kan ik dat inderdaad alsnog gebruiken.

Registry keys wordt lastig, en ipv6 is altijd aanwezig in Windows XP, dus daar heb ik niet zo veel aan.

IPv6 is van het IPv6 protocol, probeer het maar eens in cmd.

  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

Dennis schreef op 28 oktober 2004 @ 15:04:
Dat van dat .bat (of .cmd) had ik inderdaad ook al bedacht, maar ik vind het geen nette oplossing. Indien er geen andere oplossing is dan kan ik dat inderdaad alsnog gebruiken.

Registry keys wordt lastig, en ipv6 is altijd aanwezig in Windows XP, dus daar heb ik niet zo veel aan.

IPv6 is van het IPv6 protocol, probeer het maar eens in cmd.
Ik vind een commandline tool uitvoeren sowieso niet zo'n nette oplossing...

als ik ipv6 invoer krijg ik "bestand niet gevonden" melding ;)

Ik zou kijken of er geen api voor is, of een service die het kan checken.

kaart != map && bottel != fles
Wacht op antwoord


  • Brahiewahiewa
  • Registratie: Oktober 2001
  • Laatst online: 30-09-2022

Brahiewahiewa

boelkloedig

j_du_pee schreef op 28 oktober 2004 @ 15:20:
[...]Ik zou kijken of er geen api voor is, of een service die het kan checken.
Hmmz, WMI ondersteunt nog geen ipv6, dus je zit vast aan zoiets
code:
1
2
3
4
5
6
7
8
9
10
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject ( "Scripting.FileSystemObject" )
Set f = fso.OpenTextFile ( "c:\ipv6.txt", ForWriting, True )
Set oShell = WScript.CreateObject ( "WSCript.shell" )
Set objExec = oShell.exec ( "ipv6 if" )
Do While not objExec.stdOut.atEndOfStream
    strResultLine = objExec.stdOut.readLine
    f.Write strResultLine
Loop
f.Close

QnJhaGlld2FoaWV3YQ==


  • j_du_pee
  • Registratie: Maart 2000
  • Laatst online: 23-09-2024

j_du_pee

du pain, du vin, du pee

Brahiewahiewa schreef op 28 oktober 2004 @ 15:33:
[...]

Hmmz, WMI ondersteunt nog geen ipv6, dus je zit vast aan zoiets
ik kwam idd ook tot die conclusie na wat grazen in de msdn :/
Op win2k krijg je iig een errormessage omdat die ipv6 file not found geeft, dus hou daar ook rekening mee in je script ;)

kaart != map && bottel != fles
Wacht op antwoord


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 07:56
Brahiewahiewa schreef op 28 oktober 2004 @ 15:33:
Hmmz, WMI ondersteunt nog geen ipv6, dus je zit vast aan zoiets
Klopt, ik moet nu ook 'ipv6 install' via een commando gaan gebruiken wat ik ook liever op een nettere manier zou doen, maarja...
code:
1
2
3
4
5
6
7
8
9
10
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = CreateObject ( "Scripting.FileSystemObject" )
Set f = fso.OpenTextFile ( "c:\ipv6.txt", ForWriting, True )
Set oShell = WScript.CreateObject ( "WSCript.shell" )
Set objExec = oShell.exec ( "ipv6 if" )
Do While not objExec.stdOut.atEndOfStream
    strResultLine = objExec.stdOut.readLine
    f.Write strResultLine
Loop
f.Close
Dank je voor je hulp, het ziet er goed uit, ik ga er morgen even mee aan de slag en dan laat ik het in dit topic weten :).
j_du_pee schreef op 28 oktober 2004 @ 15:37:
Op win2k krijg je iig een errormessage omdat die ipv6 file not found geeft, dus hou daar ook rekening mee in je script ;)
Ik gebruik uitsluitend Windows XP SP2.

[ Voor 21% gewijzigd door Dennis op 28-10-2004 23:01 ]

Pagina: 1