Skalouche11
Messages postés16Date d'inscriptionlundi 29 septembre 2014StatutMembreDernière intervention 1 octobre 2014
-
29 sept. 2014 à 11:23
jordane45
Messages postés37845Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 novembre 2023
-
29 sept. 2014 à 16:44
Bonjour,
Voici ma problèmatique:
Je dois créer un VBScript qui demande 2 réponses (les variables %1 et %2) pour ensuite lancer cette commande "macommande %1 %2".
Ceci lance une sauvegarde de base SQL avec pour %1 le nom de la base et pour %2 le nom du fichier de sauvegarde (stocké au même endroit que le .VBS et le .CMD.
Le plus gros problème, c'est moi c'est que je ne suis un gros novice en VBS, mais la tâche est assez urgente.
Voici mes scripts:
VBS:
Option Explicit Dim %1 Dim %2 Dim oShell
%1 = InputBox("Quel est le nom de la societe?","Sauvegarde") %2 = InputBox("Nom du fichier de sauvegarde:","Sauvegarde")
cd "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn" sqlcmd.exe -E -SSERVER\SAGE100 -Q"BACKUP DATABASE [P_%1] TO DISK = N'F:\SAGE\SAV\%2.BAK' WITH FORMAT, NAME = N'%1-Complète', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
pause
Cela fonctionne bien en commande directe sur le serveur en question et dans le reperoire des fichiers scripts avec la commande "macommande TEST TEST092014".
Par contre quand je lance le vbs déjà j'ai un message d'erreur comme quoi il n'aime pas le nom des variables %1 et %2.
J'ai essayé en remplaçant par BASE et NAME mais j'ai une erreur à l'execution de la sauvegarde comme quoi il ne trouve pas la base [P_BASE]. Pourtant dans la Inputbox j'avais rentré le nom d'une base existante (pas "TEST" evidement)!
Ducoup je suis un peu pommé, je ne sais plus par où aller. Je suis sûr que quelqu'un pourra m'aider, à mon avis les lignes de codes pour ma problematiques ne sont pas très compliquées...
SVP :D
SkAlOuChE11
A voir également:
Vbs cmd
Cmd vbs - Meilleures réponses
Sqlcmd n'est pas reconnu en tant que commande interne - Meilleures réponses
jordane45
Messages postés37845Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 novembre 2023342 Modifié par jordane45 le 29/09/2014 à 12:03
Bonjour,
Il ne faut pas nommer dans ton fichier vbs, les variables à envoyer avec un % ...
Sans oublier les espaces entre chaque variables à envoyer au script...
Essaye:
Option Explicit
Dim maVar1
Dim maVar2
Dim cmdToRun
Dim oShell
maVar1= InputBox("Quel est le nom de la societe?","Sauvegarde")
maVar2= InputBox("Nom du fichier de sauvegarde:","Sauvegarde")
cmdToRun = "DB_sauve_1soc " & maVar1 & " " & maVar2
Set oShell = CreateObject("WScript.Shell")
oShell.Run cmdToRun
Wscript.Quit
Edit : Oublie d'un Espace entre le nom du fichier et les variables
Avant de poser une question, merci de lire la charte du site. Cordialement, Jordane
Skalouche11
Messages postés16Date d'inscriptionlundi 29 septembre 2014StatutMembreDernière intervention 1 octobre 2014 29 sept. 2014 à 12:07
Alors là.
Il lance bien les 2 Inputbox l'une après l'autre. Je les remplie correctement, puis il me dit ligne 13 le fichier est introuvable.
Sauf que je n'ai fait aucune faute de frappe dans le fichier et il est bien au dans le même répertoire que le vbs, je l'ai sous les yeux.
J'ai essayé avec est sans ".cmd" ... rien y fait.
J'ai aussi modifier les %1 et %2 par mes nouveaux noms de variables, c'est bon?
jordane45
Messages postés37845Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 novembre 2023342 29 sept. 2014 à 12:09
Tu as testé mon code ?
jordane45
Messages postés37845Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 novembre 2023342 29 sept. 2014 à 12:11
Sachant que le code :
c:
cd "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn"
sqlcmd.exe -E -SSERVER\SAGE100 -Q"BACKUP DATABASE [P_%1] TO DISK = N'F:\SAGE\SAV\%2.BAK' WITH FORMAT, NAME = N'%1-Complète', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
pause
Ah oui j'avais pas vu l'EDIT concernant l'espace manquant entre le nom du fichier et le double cote.
Il lance bien la commande ducoup, mais me dit:
"La base de données 'P_maVar1' n'existe pas. Assurez-vous que le nom a été saisi correctement."
C'est pour ça que j'avais mis %1 et %2, pour ne pas avoir à changer le cmd.
jordane45
Messages postés37845Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention29 novembre 2023342 29 sept. 2014 à 12:32
Tu n'as pas renommé les variables dans ton BATCH .. tu as bien laissé les %1 et %2 ??
C'est Uniquement dans le premier script qu'il fallait les changer...
Skalouche11
Messages postés16Date d'inscriptionlundi 29 septembre 2014StatutMembreDernière intervention 1 octobre 2014 29 sept. 2014 à 12:41
J'ai remis %1 et %2 dans le CMD. On dirait que ça marche.
Enfin ...
Juste le message d'erreur concerne les droits, comme quoi en gros il faut des droits d'admin sur les DB.
Il y a un paramètre pour le VBS afin qu'il s'exécute avec l'utilisateur Admin du domaine, même si il est lancé par un utilisateur classique?