我对 Batch 和 Perl 真的很陌生,所以如果我以错误的方式解决我的问题,请原谅。我现在的任务一步一步:
- 执行将生成批处理文件的 Perl 脚本。
- 执行批处理文件时,将使用创建协作者审核
adddiffs new (...)
,然后使用添加文件addfiles (...)
目前的问题是,有时审查创建过程会因任何原因而失败(我没有真正告诉过为什么,只是确实如此)但尽管adddiffs
命令失败,addfiles last
(这是它当前的编码方式)仍将执行,最终将文件添加到错误的评论中。例如,我正在尝试创建评论 10,但评论创建失败并且文件最终被添加到评论 9,这显然不是我们想要的。
我正在尝试将输出转储adddiffs new
到一个文本文件中,然后我从使用一些 perl 脚本中提取评论#。然后我想要做的是使用提取的评论 # 来执行addfiles reviewNum
,而不是addfiles last
因为它似乎addfiles last
可能会导致意外行为。
我的批处理文件是什么样的:
@rem= 'PERL for Windows NT
@echo off
ccollab.exe adddiffs new Original_Files Changed_Files > output.txt
C:\Perl\bin\perl GenerateReview.bat%*
goto endofperl
@rem ';
open(TXT, "output.txt") or die;
$lastLine = "";
while ($line = <TXT>) {
$lastLine = $line;
}
($revNum) = $lastLine =~ /(\d+)/ig;
close TXT;
__END__
:endofperl
ccollab.exe addfiles $revNum *.txt *.pdf *.html *.doc* *.xls* Info_Only/*
pause
有没有办法可以$revNum
从 perl 脚本中获取并将其替换为我的addfiles
命令?