“Objet requis” lors de l'utilisation de Définir dans une affectation
call main()
sub main()
Dim scmd
Set scmd = "c:\windows\system32\cscript.exe //nologo c:\s.vbs"
createobject("wscript.shell").run scmd,0,false
end sub
Il me donne l'erreur:
Object required: '[string: "c:\windows\system32\"]' Code 800A01A8
Il suffit de supprimer
En raison de l'réponses, j'ai décidé de répondre à cette mais, généralement, je serait vous demander ce que vous avez essayé? Juste de poster ici en tant que "mon code" et "Il me donne l'erreur:" n'est pas un bon ajustement pour ce site, s'il vous plaît essayez d'améliorer votre question ou je crains qu'il ne peut être supprimé.
BTW, c'était un horrible titre. J'ai juste édité ton titre, et j'aime le mien mieux. Que pensez-vous de cela?
Mieux 🙂
set
c'est uniquement pour les références de l'objet pas de base affectations de variablesEn raison de l'réponses, j'ai décidé de répondre à cette mais, généralement, je serait vous demander ce que vous avez essayé? Juste de poster ici en tant que "mon code" et "Il me donne l'erreur:" n'est pas un bon ajustement pour ce site, s'il vous plaît essayez d'améliorer votre question ou je crains qu'il ne peut être supprimé.
BTW, c'était un horrible titre. J'ai juste édité ton titre, et j'aime le mien mieux. Que pensez-vous de cela?
Mieux 🙂
OriginalL'auteur el ninho | 2014-05-13
Vous devez vous connecter pour publier un commentaire.
Réponse Originale À Cette Question
Votre
Set scmd
devrait être l'instanciation de laWScript.Shell
(Comme Ekkehard.Horner points, vous pouvez utiliserServer.CreateObject("WScript.Shell").Run
pour un hors de référence, mais je ne le recommande pas).La
.Run()
doit être exécutée par le instanciéscmd
objet et passé la ligne de commande à exécuter.Voici un exemple que j'ai renommé certaines des variables (
scmd
àcmd
par exemple).Choses à considérer
Lors de l'utilisation de WScript.Coque en ASP Classique pour exécuter les fichiers exécutables, il ya certaines choses à prendre en compte;
Exécuter commande sera exécutée à l'aide de l'actuelle identité du Pool d'Applications.
Exécution d'exécuter le fichier exécutable sur le serveur, pas sur le client (côté serveur).
OriginalL'auteur Lankymart
Comme
le prouve, il n'y a pas de règle ou de la loi à tous que "Votre
Set scmd
devrait être l'instanciation de la WScript.Shell". Mettre la commande à exécuter dans une variable de chaîne de scmd (ou peut-être mieux sCmd) et de ne pas créer une variable pour une fois seulement utilisé la valeur de bonnes pratiques.La version révisée (moins stupide):
fonctionnera tout aussi bien que Lankymart de la version.
À épeler tout:
"site:stackoverflow.com vbscript "object required" Set"
résultats en 1500 hits. Même si beaucoup de ces coups ne portent pas sur la"Set x = 'non-object'
gaffe, c'est clairement trop. Pour expliquer et excuser ceux Eei vous avez à considérer que la BASE est un âge de pierre de la langue."Set x = 'non-object'
erreur deux fois. Si il arrive trice (ou plus souvent), il/elle devrait avoir honte (et de garder le silence à ce sujet). Surtout que le problème ne devrait pas polluer ce site.wtf
Server.CreateObject
de cette façon (comme un objet), mais ne pense pas que je ne le sera jamais. De mon point de vue sur laSet
est l'OP est d'essayer deSet
une chaîne qui provoque laObject Required
.Le fait que l'OP avait déjà un
Set
là me donne à penser qu'ils ont probablement eu à l'origine de l'objet instancié là, mais à un certain point tout modifier le code ils ont terminé avec elle topsy turvy.Pour être honnête est votre réponse qui répond à la question ou est-ce juste une critique de ma réponse?
C'est comment Ekke rouleaux, découvrez ce bijou: stackoverflow.com/questions/23814335/... dois lui donner du crédit, il vous aime audience parler lui-même.
OriginalL'auteur Ekkehard.Horner
Je ne suis pas sûr, essayez de changer
à
scmd
est une chaîne doncSet
n'est pas nécessaire. Aussi toute l'échappement de la chaîne vbscript ou asp-classic nécessite""
ou de la chaîne lancera une erreur de syntaxe. Dans cet exemple, la chaîne doit êtrescmd = """c:\windows\system32\cscript.exe"" //nologo ""c:\s.vbs"""
. Mais ce n'est pas la question de toute façon.-1: même Pas syntaxiquement correctes; à l'aide de Jeu non-objet affectations est manifestement faux.
-1 Merci pour la réponse, mais nous préférons bon, correct réponses. Si vous ne savez pas, ne répondez pas.
D'accord, je voulais l'aider, mais juste ne pas répondre quand je ne suis pas sûr. Malade de garder à l'esprit, merci!
OriginalL'auteur user3611729