Salut à tous.

Je suis sous windows 10 Pro
Je désire depuis un script Perl, lancer un batch windows et récupérer son code retour.

Par exemple, ce batch windows :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@echo off
 
echo Le premier paramètre : %1
echo Le second  paramètre : %2
 
exit 5
Et voici ce que j'ai fait en Perl :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!C:\perl64\bin\perl.exe -w
 
use strict;
use warnings;
use diagnostics;
use 5.24.1;
 
# --------------------------------
# Passage de paramètres à un Batch
# --------------------------------
 
my @cmd = ('batch.bat', 'hello', 'sir');
 
open DATA, "@cmd|" or die "Ouverture impossible des données : $!" ;
 
while (my $line = <DATA>)	{ $line =~ s/[\n\r]+//g; say ">>".$line."<<"; }
 
close DATA;
Et voici le résultat que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
>>Le premier paramètre : hello<<
>>Le second  paramètre : sir<<
Avant de poster, j'ai cherché sur le net, sans succès.
J'ai pensé que le code retour pouvait être récupéré par "$!" mais je n'obtiens rien à l'exécution.

Je désire donc en Perl, récupérer la valeur 5.

@+