ArcheoGamers Forums

Archeo-Gamers => Le coin des developpeurs => Discussion démarrée par: LaDite le Février 14, 2009, 18:08:11



Titre: Probleme .BAT
Posté par: LaDite le Février 14, 2009, 18:08:11
slt a tous

j ai realise un .BAT pour convertir facilement les fichiers .TRAJ des Layouts par la resolution que l on veux (1024*768 en 640*480 par ex)

soit

Extraire chaque nombre composant chaque ligne de mon fichier .TRAJ et convertir ceux ci lors d un calcul

pas de probleme pour EXTRAIRE chaque Nombre de chaque Ligne, MAIS je n'arrive pas a afficher le resultat du calcul contenu dans ma variable  >:(

voici mon .BAT (j ajouterai ensuite la possibilite de choisir la resolution que l on souhaite ainsi que le nom du fichier de Sortie   ;))

Code:

@echo off

FOR /F "Tokens=1,2,3,4 Delims=," %%i IN (file.traj) DO (

ECHO valeur par defaut %%i,%%j,%%k,%%l

SET /a var1=%%i*1024/640
SET /a var2=%%j*768/640
SET /a var3=%%k*1024/640
SET /a var4=%%l*768/640

ECHO Valeur de la modif %var1%,%var2%,%var3%,%var4%

)

pause


et voici ce qu il se passe lors de l execution du .BAT

Code:
valeur par defaut 544,20,461,512
Valeur de la modif ,,,
valeur par defaut 544,20,467,518
Valeur de la modif ,,,
valeur par defaut 544,20,472,524
Valeur de la modif ,,,

/////         /////       /////

valeur par defaut 544,20,478,530
Valeur de la modif ,,,
valeur par defaut 544,20,483,536
Valeur de la modif ,,,


pourtant si j active ECHO ON je constate que mes variables "VAR1, VAR2, VAR3, VAR4" affiche bien le calcul

Code:
C:\Documents and Settings\HP_Propriétaire\Bureau>(
ECHO valeur par defaut 544,20,506,561
 SET /a var1=544*1024/640
 SET /a var2=20*768/640
 SET /a var3=506*1024/640
 SET /a var4=561*768/640
 ECHO Valeur de la modif ,,,
)
valeur par defaut 544,20,506,561
Valeur de la modif ,,,


avez vous une idee du probleme,

merci

LaDite





Titre: Probleme .BAT
Posté par: youki le Février 14, 2009, 21:42:40
humm...bizarre, ca devrait fonctionner je pense aussi. ???


Titre: Probleme .BAT
Posté par: LaDite le Février 15, 2009, 15:13:38
slt,

je comprends pas non plus, je viens de poser la question sur un autre Forums, ils auront peut etre une idee du probleme

LaDite



Titre: Probleme .BAT
Posté par: LaDite le Février 16, 2009, 20:42:15
slt,

on m a repondu sur un autre Forums,

Code:
@echo off

FOR /F "Tokens=1,2,3,4 Delims=," %%i IN (file.traj) DO (

ECHO valeur par defaut %%i,%%j,%%k,%%l

SET /a %%i*=1024/640
SET /a %%j*=768/480
SET /a %%k*=1024/640
SET /a %%l*=768/480

ECHO Valeur de la modif %%i,%%j,%%k,%%l

)

pause


mais il m affiche cette erreur : il manque un OPERANDE


Code:
valeur par defaut 544,20,506,561
Il manque un opérande.
Il manque un opérande.
Il manque un opérande.
Il manque un opérande.
Valeur de la modif 544,20,506,561

par contre il m affiche  le resultat de mes variables, donc je me rapproche de la solution  ;D

une idee sur le probleme  ???

merci  :-*

LaDite


Titre: Probleme .BAT
Posté par: LeFauve le Mars 25, 2009, 09:02:57
Le message est clair: Il manque un opérande. Probablement à l'opérateur *.
J'en déduis donc que *= n'est pas reconnu par ton interpréteur de script.

En tous cas tu es bien courageux d'utiliser les scripts de Windows.

Quand j'ai besoin de faire un script de plus de 3 lignes, soit j'utilise un script shell Unix (via zsh.exe, mais on trouve aussi sh.exe, bash.exe, etc...) ou mieux, awk !

Awk, c'est un de ses outils intemporels qui te permet de faire en quelques minutes des transformations de fichiers, ou n'importe quoi d'autre (surtout si tu as des bases en C et si tu aimes les expressions régulières).
Et en plus, c'est aussi vieux que PacMan  ;D (qui fête ses 30 ans l'année prochaine  ;) ).

Je te conseille la version de Gnu (gawk.exe) qui ajoute quelques fonctions en plus.