comment puis je lancer un script batch en dos d'un sript en perl?
Version imprimable
comment puis je lancer un script batch en dos d'un sript en perl?
Code:system ("toto.bat");
ca ne marche pas si je met le chemin??
voila mon code:
Edité par GLDavid. Merci de mettre les balises codes :tagcode:Code:
1
2 #!/usr/bin/perl -w system ("D:\....\batch.bat");
Essaye en remplaçant les \ par des /
En perl, le chemin d'accès aux fichiers est unifié, pour utiliser le / comme séparateur de répertoires. Ainsi, les scripts peuvent gagner en portabilité. C'est l'interpréteur Perl qui fait la transformation en \, au besoin.
Bonne continuation
Le caractère '\' est un caractère spécial en PERL.
Soit tu le doubles, comme suis :
Code:
1
2 #!/usr/bin/perl -w system ("D:\\....\\batch.bat");
Soit tu mets :
Code:
1
2 #!/usr/bin/perl -w system ("D:/..../batch.bat");
La première solution est à éviter, la seconde étant prévue explicitement pour une meilleure portabilité.Citation:
Envoyé par Gamdwin
Si malgré tout on veut s'enferrer avec les \, il y a plus simple que de doubler tous les \ : il suffit de mettre le chemin entre simple quotes pour limiter l'interprétation des caractères spéciaux (tel le \).
Ainsi :Code:
1
2 #!/usr/bin/perl -w system ('D:\....\batch.bat');
Tout à fait.Citation:
La première solution est à éviter, la seconde étant prévue explicitement pour une meilleure portabilité.
J'aurais dû le préciser comme tu l'as fait dans ton premier post.