.bat dans un package qui ne marche pas ? - Shell/Batch - Programmation
Marsh Posté le 22-12-2005 à 12:20:37
Avec un peu plus d'infos, on t'aidera surrement...
Source de ton bat
Et fou un "pause" à la fin du bat, hitsoire de voir les éventuels messages d'erreur
Marsh Posté le 22-12-2005 à 12:27:04
Code :
|
mais à priori pas d'erreur puisque en dehors du package le .bat fait bien ce que je lui demande. C'est dès que je l'intègre dans un package (fait avec iexpress dans c:\windows\system32) qu'il se lance mais ne fait plus rien
Marsh Posté le 22-12-2005 à 14:08:01
Déjà, pour éviter tout problème de chemin d'accès :
Code :
|
Marsh Posté le 22-12-2005 à 14:17:52
rename ou ren c'est la même commande qui est appelée (help pour info).
Cette commande est erronée :
Code :
|
La bonne syntaxe est :
Code :
|
Sinon, dans le script original, l'erreur était dans cette ligne :
Code :
|
Il fallait écrire :
Code :
|
Marsh Posté le 22-12-2005 à 14:45:28
perso, j'aime pas les "CD", c'est franchement pourri, notamment dans le cas où tu réutilises ton script dans un cadre plus global : imagine un script qui lance ton script. ben le sous-scrit change de répertoire et... le script principal se met à foutre la merde dans le mauvais répertoire quand il reprend la main.
a éviter comme la peste selon moi. c'est comme une variable globale en programmation : oui mais nan.
Marsh Posté le 22-12-2005 à 15:07:53
bon, malgré que comme je le disais mon script fonctionnait bien quand lancé manuellement en dehors d'un package, en tenant compte de vos remarques je l'ai modifié en
Code :
|
quand je refais mon package avec le nouveau script, il se lance toujours mais ne fait toujours aucun effet...
pourtant il marche quand je le lance tout seul
Marsh Posté le 22-12-2005 à 15:24:46
ReplyMarsh Posté le 22-12-2005 à 15:27:23
Arjuna a écrit : à mon avis, faut sortie %USERPROFILE% de la chaîne de caractères |
Ce script MARCHE tel qu'il est !
ce que je ne comprend pas c'est que quand je l'inclue dans un package (sur la même machine), il s'execute bien mais ne marche pas...
Marsh Posté le 22-12-2005 à 15:29:30
ou un VBS, si c'est juste pour jouer avec des fichiers, y'a tout ce qu'il faut dans l'objet FSO
Marsh Posté le 22-12-2005 à 16:01:50
ReplyMarsh Posté le 22-12-2005 à 16:03:15
Arjuna a écrit : perso, j'aime pas les "CD", c'est franchement pourri |
+1
Mais là il s'agissait de corriger le script donné
Marsh Posté le 22-12-2005 à 16:10:08
wackevat a écrit : Ajoute une pause après rename pour voir ce que ça retourne. |
Mmmmh alors quand je le lance directement je n'ai aucun message d'erreur.
Par contre quand lancé à partir du package j'ai un message d'erreur
Le prompt me donne donc un chemin d'accès dans le répertoire TMP (le bat serait donc copié là bas pour y être executé) et en message d'erreur j'ai : Parameter Format not correct - "C:\DOCUMENT~1\exgfrga\desktop\*.rpo"
là je comprend pas... une fois ça marche une fois y'a une erreur...
Marsh Posté le 22-12-2005 à 16:19:48
Apparemment, ton script lit
%UserProfile%
en tant que
C:\DOCUMENT~1
et non pas
C:\Documents and Settings
donc pas de guillemets si chemin court.
Quelle est erreur sans guillemets ET avec %UserProfile% ?
Que donne-t-il (pour tester) avec guillemets et Documents and Settings ?
Marsh Posté le 22-12-2005 à 16:31:04
Et bien sans les guillemets il ne marche plus quand je l'execute tout seul, par contre il marche quand je l'execute depuis le package
seul problème c'est qu'apparemment (enfin ça parait logique vu que c'est du dos) il ne gère pas les noms de fichiers de plus de 8 lettres, il les renomme donc tout bizarrement, mais en même temps c'est vraiment une technique rudimentaire... Je vais voir si je peux pas faire mieux avec autre chose qu'un .bat.
Merci en tout cas
Marsh Posté le 22-12-2005 à 16:45:51
renomme ton fichier BAT en CMD (le langage est le même, mais CMD n'étant supporté que par NT, il devrait se comporter comme quand tu tapes... cmd pour ouvrir une invite
Marsh Posté le 22-12-2005 à 21:00:00
snipecmoileretour a écrit : Et bien sans les guillemets il ne marche plus quand je l'execute tout seul, par contre il marche quand je l'execute depuis le package |
Justement c'est ce que je m'en doutais : à partir du package et à l'invite de commandes, la variable %UserProfile% n'est pas interprétée de la même façon : chemin court d'un côté et long de l'autre (tu peux vérifier par un echo %UserProfile%).
Il faut vérifier aussi également comment fonctionne ton logiciel de packaging.
Marsh Posté le 23-12-2005 à 02:38:00
renome quand même ton fichier en *.cmd je pense que ça devrait résoudre ton problème
Marsh Posté le 22-12-2005 à 11:12:40
Bonjour à vous,
j'essaye de créer un package avec iexpress, l'utilitaire très simple mais efficace de windows.
Au fait le problème n'est pas tant dans la création du package qui elle se fait bien, mais je voudrais intégrer un ficher bat qui execute une commande a ce package.
Quand je lance ce fichier en dehors du package il fait tout à fait ce que je lui demande (supprimer un ficher) mais quand je l'intègre au package, il se lance bien puisque je vois la fenêtre du shell s'ouvrir, mais le fichier ne se supprime pas cette fois-ci...
Pourquoi ? ça doit pas être compliqué, mais si quelqu'un voit une solution
Merci d'avance
Message édité par snipecmoileretour le 22-12-2005 à 12:18:10