J'ai un programme Perl qui fait quelque chose comme ci-dessous:Exécution d'un fichier de commandes à partir de Perl (ActiveState Perl sous Windows)
#!/usr/bin/env perl
use strict;
use warnings;
my $exe = "C:\\project\\set_env_and_run.bat";
my $arg1 = "\\\\Server\\share\\folder1";
my $arg2 = "D:\\output\\folder1";
my $cmd = "$exe \"$arg1\" \"$arg2\"";
my $status = system("$cmd > c:\\tmp\\out.txt 2>&1");
print "$status\n";
J'appelle ce code Perl dans un bloc eval. Lorsque invoqué, j'obtiens l'état imprimé comme 0, mais le fichier de commandes n'a pas été réellement exécuté. Quelle serait la raison de cela? Un problème avec l'appel 'système' codé ci-dessus?
Merci, Jits
Désolé, j'avais mis l'échantillon c ode et manqué échapper les barres obliques inverses! l'ai corrigé ci-dessus. – Jithesh
Vous pouvez utiliser des barres obliques (directes) correctes dans les chemins d'accès aux fichiers dans Win32 perl? 'my $ exe = 'C: /project/set_env_and_run.bat';' fonctionnera très bien. – daotoad