我下面的代码,我可以运行 $retCode = ClearCase($cmd);没有错误,但运行时返回 65280: $retCode = ClearCase($logcmd);我在 XP 和 Windows 2003 服务器上尝试过,结果相同,都使用 ActiveState Perl v5.14.2。
这段代码在 2 年前在其他地方工作。
谢谢
吉荣
$g_HPPC_DEV_DRIVE = "M";
$g_HPPC_DEV_VIEW = "bldforge_AOMS_DEV";
$g_logfile = "logfile.txt";
$cmd = "startview $g_HPPC_DEV_VIEW";
$logcmd = $cmd . " >> $g_logfile 2>>&1";
$targetDir = $g_HPPC_DEV_DRIVE . ":\\" . $g_HPPC_DEV_VIEW;
print "\$targetDir = $targetDir\n";
print "Starting view .......\n";
#$retCode = system("cleartool startview bldforge_AOMS_DEV >> logfile.txt");
#$retCode = `cleartool startview bldforge_AOMS_DEV`;
$retCode = ClearCase($logcmd);
#$retCode = ClearCase($cmd);
sub ClearCase
{
my $retCode = 0;
my $args = $_[0];
my $cmd = "cleartool " . $args;
$retCode = Execute($cmd);
return $retCode;
}
sub Execute
{
my $retCode = 0;
my $cmd = $_[0];
if ($g_HPPC_BUILD_SIMULATION ne "Y")
{
print("Execute() Running...: $cmd\n");
$retCode = system($cmd);
#$retOut = `$cmd`;
#$retCode = $?;
#print("Command execute output: $retOut\n");
}
else
{
print("Execute() *** SIMULATION: $cmd\n");
}
print("Execute() retCode = $retCode, $cmd\n");
return $retCode;
}
最佳答案
使用 cleartool 时,最好确保使用 ccperl
( now called ratlperl
),ClearCase 打包的 perl,而不是 latest Active Perl ( which actually is the 5.14.2 )。
因此,不要默认启动 perl 脚本,而是选择 perl.exe
中可用的第一个 %PATH%
,尝试使用 perl included with ClearCase 之一调用它:
ratlperl
:在 C:\Program Files\Rational\Common
中。 ccperl
:在 C:\Program Files\Rational\ClearCase\bin
中。 并查看错误是否仍然存在。
根本原因是
PATH
问题:有几个 perl
可用:通过确保
PATH
只引用一个 perl
(ClearCase 附带的那个),脚本可以成功启动。关于windows - Perl system() 调用失败,返回码 65280,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11989196/