Avatar billede s0mmer Nybegynder
18. december 2009 - 15:52 Der er 7 kommentarer

Windows Host Script

Hej eksperter,

Jeg er igang med at lave et script som skal bruge cmd på serveren. I den forbindelse prøver jeg følgende kode:

  Wscript = CreateObject("WScript.Shell")
 
  Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
  Set oShell = WScript.CreateObject("Wscript.Shell")

Dog får jeg følgende fejl:

Microsoft VBScript runtime  error '800a01b6'

Object doesn't support this property or method: 'WScript

Der er installet version 5.6 af WSH på serveren. Kan i hjælpe?
Avatar billede s0mmer Nybegynder
18. december 2009 - 16:05 #1
Hvis jeg ændrer til :
  Set WScript = CreateObject("WScript.Shell")

Får jeg fejl :
Microsoft VBScript runtime  error '800a01b6'

Object doesn't support this property or method: 'WScript.CreateObject'
Avatar billede tjens Nybegynder
18. december 2009 - 18:17 #2
Kan det være fordi du bruger ordet WScript som objectnavn, og at det samtidig er et reserveret ord?

Jeg har selv et VBscript med følgende definition
Set WshShell = CreateObject("WScript.Shell")

og følgende brug
Wshshell.run  theCmd,5,False
Avatar billede Slettet bruger
18. december 2009 - 22:54 #3
Du sætter variablen Wscript lig med WScript.Shell objektet og forsøger så i linie 3, igen at oprette et WScript.Shell objekt, men denne gang ud fra den eksisterende variabel kaldet WScript.

Wscript = CreateObject("WScript.Shell")

Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("Wscript.Shell")

Hvis du i stedet kalder den første variabel fx. Wscript_WhatEver tror jeg det vil virke.
Men det du gør svarer jo til at oprette en variabel kaldet String og sætte den lig med et String-objekt og så bagefter forvente at den skal kunne oprette et tilsvarende objekt af samme type ;)
Avatar billede Slettet bruger
18. december 2009 - 22:56 #4
Du sætter variablen Wscript lig med WScript.Shell objektet og forsøger så i linie 3, igen at oprette et WScript.Shell objekt, men denne gang ud fra den eksisterende variabel kaldet WScript.

Wscript = CreateObject("WScript.Shell")

Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("Wscript.Shell")

Hvis du i stedet kalder den første variabel fx. Wscript_WhatEver tror jeg det vil virke.
Men det du gør svarer jo til at oprette en variabel kaldet String og sætte den lig med et String-objekt og så bagefter forvente at den skal kunne oprette et tilsvarende objekt af samme type ;)
Avatar billede Slettet bruger
18. december 2009 - 23:00 #5
Undskylder for dobbelt post, men jeg sidder på mobilt bredbånd fra Telenor... Og det er ikke alt for stabilt.
Det var lidt forbrugeroplysning :)
Avatar billede s0mmer Nybegynder
30. december 2009 - 13:02 #6
Først og fremmest beklager jeg mit langsomme svar.

Ved nærmere gennemgang er første linje er overflødig og det jeg skal bruge er følgende:

  Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
  Set oShell = WScript.CreateObject("Wscript.Shell")

Dog får jeg bare følgende fejl:
Object required: 'WScript'

På ovenstående linje 1.

Hvorfor? Skal jeg inkludere et lib eller lignende for at få dette til at fungere?
Avatar billede s0mmer Nybegynder
30. december 2009 - 13:22 #7
For evt. at lette forvirringen er det følgende funktion jeg prøver at få til at virke:

Function UnZip(sArchiveName,sLocation)
  'This script is provided under the Creative Commons license located
  'at http://creativecommons.org/licenses/by-nc/2.5/ . It may not
  'be used for commercial purposes with out the expressed written consent
  'of NateRice.com
 
  Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
  Set oShell = WScript.CreateObject("Wscript.Shell")

  '--------Find Working Directory--------
  aScriptFilename = Split(Wscript.ScriptFullName, "\")
  sScriptFilename = aScriptFileName(Ubound(aScriptFilename))
  sWorkingDirectory = Replace(Wscript.ScriptFullName, sScriptFilename, "")
  '--------------------------------------

  '-------Ensure we can find 7za.exe------
  If oFSO.FileExists(sWorkingDirectory & "\" & "7za.exe") Then
    s7zLocation = ""
  ElseIf oFSO.FileExists("C:\Program Files\7-Zip\7za.exe") Then
    s7zLocation = "C:\Program Files\7-Zip\"
  Else
    UnZip = "Error: Couldn't find 7za.exe"
    Exit Function
  End If
  '--------------------------------------

  '-Ensure we can find archive to uncompress-
  If Not oFSO.FileExists(sArchiveName) Then
    UnZip = "Error: File Not Found."
    Exit Function
  End If
  '--------------------------------------

  oShell.Run """" & s7zLocation & "7za.exe"" e -y -o""" & sLocation & """ """ & _
  sArchiveName & """", 0, True
  UnZip = 1
End Function
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester