perl系统函数中多个参数的窗口

我有一个scneario,我必须执行一个java程序&为此,我必须首先设置类path和所有在单个perl程序下调用。 我正在尝试下面的命令不起作用:

$command1="echo \" First command\""; $command2="echo \" Second command\""; system("$command1;$command2"); 

以上命令在LINUX中正常工作,但不在Windows中。 请帮我执行这个。

在大多数平台上,

 system($shell_command); 

手段

 system('sh', '-c', $shell_command); 

在Windows上,它意味着更接近

 system('cmd', '/x', '/c', $shell_command); 

选项1

继续使用bourne shell命令,但需要明确指定bourne shell。

 system('sh', '-c', 'echo 1 ; echo 2'); 

这是不可能的,因为计算机不太可能安装了Bourne Shell。

选项2

为本地shell使用正确的语法。

 if ($O eq 'MSWin32') { system('echo 1 & echo 2'); } else { system('echo 1 ; echo 2'); } 

选项3

呼叫system两次。

 system('echo 1'); system('echo 2'); 

如果你想使用; 在命令之间你必须调用shell。 这是另一种选择;

 my @cmds =( [ "echo", q{" First command"} ], [ "echo", q{" Second command"} ], ); system (@$_) for @cmds; 

这是你正在尝试吗?

 $a=" echo wasssup people"; $b=" echo hi guys"; system("$a"."$b");