.bat dans un package qui ne marche pas ?

.bat dans un package qui ne marche pas ? - Shell/Batch - Programmation

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
Reply

Marsh Posté le 22-12-2005 à 11:12:40   

Reply

Marsh Posté le 22-12-2005 à 12:18:47    

un ptit up avec un changement de titre (plus explicite)

Reply

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

Reply

Marsh Posté le 22-12-2005 à 12:27:04    

Code :
  1. cd C:\Documents and Settings\exgfrga\Desktop
  2. rename *.rpo *.pro
  3. pause


 
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  :cry:

Reply

Marsh Posté le 22-12-2005 à 14:08:01    

Déjà, pour éviter tout problème de chemin d'accès :
 

Code :
  1. rename "C:\Documents and Settings\exgfrga\Desktop\*.rpo" "C:\Documents and Settings\exgfrga\Desktop\*.pro"

Reply

Marsh Posté le 22-12-2005 à 14:08:33    

ps: c'est "rename" en MSDOS ? C'est pas "ren" ?

Reply

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 :
  1. rename "C:\Documents and Settings\exgfrga\Desktop\*.rpo" "C:\Documents and Settings\exgfrga\Desktop\*.pro"


 
La bonne syntaxe est :

Code :
  1. rename "C:\Documents and Settings\exgfrga\Desktop\*.rpo" *.pro


 
Sinon, dans le script original, l'erreur était dans cette ligne :

Code :
  1. cd C:\Documents and Settings\exgfrga\Desktop


 
Il fallait écrire :

Code :
  1. cd /d "C:\Documents and Settings\exgfrga\Desktop"


Message édité par wackevat le 22-12-2005 à 14:18:48
Reply

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.

Reply

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 :
  1. rename "%USERPROFILE%\Desktop\*.rpo" *.pro


 
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  :heink:


Message édité par snipecmoileretour le 22-12-2005 à 15:20:15
Reply

Marsh Posté le 22-12-2005 à 15:24:46    

à mon avis, faut sortie %USERPROFILE% de la chaîne de caractères

Reply

Marsh Posté le 22-12-2005 à 15:24:46   

Reply

Marsh 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...

Reply

Marsh Posté le 22-12-2005 à 15:29:09    

bah [:spamafote]
 
t'as qu'à faire un exe :o

Reply

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

Reply

Marsh Posté le 22-12-2005 à 16:01:50    

Ajoute une pause après rename pour voir ce que ça retourne.

Reply

Marsh 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é ;)

Reply

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...

Reply

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 ?

Reply

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 :D
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 :)

Reply

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 ;)

Reply

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 :D


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.

Reply

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

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed