0
"--BuildSuccessful--"상태가 표시되면 로그 파일을 읽고 41 단계를 모두 검색하는 스크립트가 있습니다. 그러면 로그 파일이 현재 폴더에서 현재 성공적으로 이동합니다. 그것은 효과가 있었지만 최근에는 때때로 제대로 작동하지 않았습니다. 무슨 일이 벌어지고 있는지, 폴더의 현재 로그 파일은 아직 이해가 안됩니다. 제 코드 개선을 위해 시간을 내주십시오. 여기 Perl 스크립트의 문제 수정
파일 템플릿 로그 :Build Number:: 21.9004.5200.0 BUILT TYPE:: Nightly build
===========================================================
Progress Time Build Step
BuildStarted CosmoRR Tue Apr 11 20:05:38 2017 0
CheckChanges Tue Apr 11 20:05:38 2017 0
PreBuildToolsSLN Tue Apr 11 20:14:07 2017 0
ReportDevEnvErrs Tue Apr 11 20:14:12 2017 0
CheckDevenvErrs Tue Apr 11 20:14:12 2017 0
ReplaceUCBVersionNumber Tue Apr 11 20:14:27 2017 1
BuildVPresent Tue Apr 11 20:14:27 2017 2
BuildFlashAndFlex Tue Apr 11 20:14:35 2017 3
BuildFlexTop Tue Apr 11 20:15:00 2017 4
ObfuscatePHP Tue Apr 11 20:15:07 2017 5
ReplaceSTVersionNumber Tue Apr 11 20:15:11 2017 6
RunGetEnums Tue Apr 11 20:15:11 2017 7
ReplaceClientVersionNum Tue Apr 11 20:15:11 2017 8
BuildAllSLN Tue Apr 11 20:15:11 2017 9
ReportDevEnvErrs Tue Apr 11 20:35:32 2017 9
CheckDevenvErrs Tue Apr 11 20:35:32 2017 9
ReportDevEnvErrs Tue Apr 11 20:35:32 2017 9
CheckDevenvErrs Tue Apr 11 20:35:32 2017 9
ReportDevEnvErrs Tue Apr 11 20:35:32 2017 9
CheckDevenvErrs Tue Apr 11 20:35:32 2017 9
ReportDevEnvErrs Tue Apr 11 20:35:32 2017 9
CheckDevenvErrs Tue Apr 11 20:35:32 2017 9
BuildSolution Tue Apr 11 20:35:32 2017 10
ReportDevEnvErrs Tue Apr 11 20:43:20 2017 10
CheckDevenvErrs Tue Apr 11 20:43:20 2017 10
BuildPresenterInstaller Tue Apr 11 20:43:20 2017 11
BuildMsiInstaller Tue Apr 11 20:43:20 2017 11
CheckSignCodeErrors Tue Apr 11 20:43:23 2017 11
BuildAcceleratorInstaller Tue Apr 11 20:43:23 2017 11
BuildMsiInstaller Tue Apr 11 20:43:23 2017 11
CheckSignCodeErrors Tue Apr 11 20:43:24 2017 11
CheckSignCodeErrors Tue Apr 11 20:44:24 2017 11
CheckSignCodeErrors Tue Apr 11 20:44:24 2017 11
GetPhoneInstaller Tue Apr 11 20:44:24 2017 12
GetManhattanClientExo Tue Apr 11 20:44:28 2017 13
GetManhattanClientEndo Tue Apr 11 20:44:29 2017 14
GetManhattanClient Tue Apr 11 20:44:29 2017 15
GetShoreTelPlayer Tue Apr 11 20:44:34 2017 16
GetConnectforMSFT Tue Apr 11 20:44:35 2017 17
GetCCClient Tue Apr 11 20:44:37 2017 18
SpawnLinuxBuild Tue Apr 11 20:44:38 2017 19
BuildSwitches Tue Apr 11 20:44:39 2017 20
BuildFilesys Tue Apr 11 21:07:07 2017 20
ReportDevEnvErrs Tue Apr 11 21:07:13 2017 20
CheckDevenvErrs Tue Apr 11 21:07:13 2017 20
BuildCASTestingTools Tue Apr 11 21:07:17 2017 21
ReportDevEnvErrs Tue Apr 11 21:07:33 2017 21
CheckDevenvErrs Tue Apr 11 21:07:33 2017 21
BuildPHR Tue Apr 11 21:07:33 2017 22
BuildRuby Tue Apr 11 21:07:36 2017 23
BuildRubyDirector2 Tue Apr 11 21:07:52 2017 24
CreateTAPISDK Tue Apr 11 21:13:30 2017 25
SignTDIMedia Tue Apr 11 21:13:31 2017 26
BuildAPPFolder Tue Apr 11 21:13:32 2017 27
BuildRubywin Tue Apr 11 21:13:40 2017 28
BuildRubymingw Tue Apr 11 21:18:06 2017 29
BuildNginx Tue Apr 11 21:22:05 2017 30
BuildNginx Tue Apr 11 21:22:06 2017 31
GetSalesforcePlugin Tue Apr 11 21:22:19 2017 32
RunPrep4Install Tue Apr 11 21:22:23 2017 33
RunPrep4Install_iteration_1 Tue Apr 11 21:27:23 2017 33
RunPrep4Install_iteration_2 Tue Apr 11 21:32:23 2017 33
RunPrep4Install_iteration_3 Tue Apr 11 21:37:23 2017 33
RunPrep4Install_iteration_4 Tue Apr 11 21:42:23 2017 33
RunPrep4Install_iteration_5 Tue Apr 11 21:47:23 2017 33
CheckSignCodeErrors Tue Apr 11 21:47:48 2017 33
Client_3rdParty_DiagMonitoring_Installer Tue Apr 11 21:47:48 2017 34
Build3rdPartyInstaller Tue Apr 11 21:47:48 2017 34
BuildMsiInstaller Tue Apr 11 21:47:48 2017 34
BuildDiagMonitoringInstaller Tue Apr 11 21:47:50 2017 34
BuildMsiInstaller Tue Apr 11 21:47:50 2017 34
BuildDMuiInstaller Tue Apr 11 21:47:51 2017 34
BuildMsiInstaller Tue Apr 11 21:47:51 2017 34
CheckSignCodeErrors Tue Apr 11 21:49:54 2017 34
CheckSignCodeErrors Tue Apr 11 21:49:54 2017 34
BuildRemoteServer Tue Apr 11 21:49:54 2017 35
BuildMsiInstaller Tue Apr 11 21:49:54 2017 35
CheckSignCodeErrors Tue Apr 11 22:01:25 2017 35
BuildRemoteServerDC Tue Apr 11 22:01:25 2017 36
BuildMsiInstaller Tue Apr 11 22:01:25 2017 36
CheckSignCodeErrors Tue Apr 11 22:08:12 2017 36
Server_LinuxDVX_Switch_Platform_DC_Installer Tue Apr 11 22:08:12 2017 37
BuildDataCenterServerInstaller Tue Apr 11 22:08:12 2017 37
BuildMsiInstaller Tue Apr 11 22:08:12 2017 37
BuildLinuxDVSInstaller Tue Apr 11 22:08:14 2017 37
BuildMsiInstaller Tue Apr 11 22:08:14 2017 37
BuildSwitchInstaller Tue Apr 11 22:08:14 2017 37
BuildMsiInstaller Tue Apr 11 22:08:14 2017 37
BuildPlatformInstaller Tue Apr 11 22:13:15 2017 37
BuildMsiInstaller Tue Apr 11 22:13:15 2017 37
BuildServerInstaller Tue Apr 11 22:13:15 2017 37
BuildMsiInstaller Tue Apr 11 22:13:15 2017 37
CheckSignCodeErrors Tue Apr 11 22:59:44 2017 37
CheckSignCodeErrors Tue Apr 11 22:59:46 2017 37
CheckSignCodeErrors Tue Apr 11 22:59:46 2017 37
CheckSignCodeErrors Tue Apr 11 22:59:47 2017 37
CheckSignCodeErrors Tue Apr 11 22:59:47 2017 37
RunpostInstall Tue Apr 11 22:59:47 2017 38
ReportVersions Tue Apr 11 23:00:03 2017 39
BuildAllSims Tue Apr 11 23:00:04 2017 40
ReportSIMDevEnvErrors Tue Apr 11 23:02:41 2017 40
CheckDevenvErrs Tue Apr 11 23:02:41 2017 40
BuildAllSimsVS2010 Tue Apr 11 23:03:44 2017 41
ReportSIMDevEnvErrors Tue Apr 11 23:03:57 2017 41
CheckDevenvErrs Tue Apr 11 23:03:57 2017 41
===========================================================
--BuildSuccessful--
Successful Tue Apr 11 23:05:55 2017 41
그리고 내 스크립트를
opendir DIR1, "C:\\BuildStatus\\Current\\" or die "cannot open dir $dir: $!";
my @files= grep ! /^\.+$/, readdir DIR1;
foreach my $files (@files)
{
$searchsucs = "--BuildSuccessful--";
$oldLoc2 = "C:\\BuildStatus\\Current\\".$files;
$newLocS2 = "C:\\BuildStatus\\History\\Successful\\".$files;
$newLocF2 = "C:\\BuildStatus\\History\\Failed\\".$files;
open(E_FILE,"C:\\BuildStatus\\Current\\".$files);
@valf2 = <E_FILE>;
my $newLoc2 = "";
foreach $searchf2 (@valf2)
{
if ($searchf2=~/$searchsucs/)
{ print "matched";
$num1 =$num1 + 1;
}else
{ print "not matched";
$num1 = $num1 + 0;
}
}
close E_FILE;
print "moving build status file......\n";
if($num1 == 1) {
fmove($oldLoc2, $newLocS2) or warn "$file Warning: Not able to move build status files \n ";
system(qq(E:\\depot\\builds\\PassedBuilds.bat));
} else {
fmove($oldLoc2, $newLocF2) or warn "$file Warning: Not able to move build status files \n ";
}
}
closedir DIR1;
각 파일에 대해'$ num1' 변수를 재사용하는 것처럼 보이지만 '0'으로 재설정하지 않았습니다. 첫 번째 빌드가 성공적으로 끝난 후, 나머지는'else num '> 1 때문에'else' 블록에 충돌합니다. – xxfelixxx
foreach 루프 앞에 $ num1 = 0을 설정해야한다는 것을 의미합니까 ??? –
'$ num1'의 계산은 확실히 문제가됩니다. 하지만이 문제는 발생하지 않습니다. '$ num1' 값이 무엇이든 관계없이 파일은 현재 디렉토리에서 "Successful"또는 "Failed"디렉토리로 이동해야합니다. –