让我们聚在一起

作者:David Romano

在此事件中,您需要将多个文本文件的内容合并到一个文件中。为了成功完成此事件,您需要做一些事情

  • 1.

查找 C:\Scripts 文件夹中的所有文本文件(扩展名为 .txt 的文件)。(确保使用 C:\Scripts;如果您使用任何其他文件夹,您将不会获得此事件的积分。)

  • 2.

创建一个名为 C:\Temp\Newfile.txt 的新文件。(同样,您的脚本创建的文件的完整路径和名称必须与此完全匹配。)

  • 3.

将 C:\Scripts 中每个文本文件的第一行(仅第一行)复制到您的新文件中。

就是这样。当您的脚本完成后,您的 C:\Temp 文件夹中应该有一个名为 Newfile.txt 的新文件。 Newfile.txt 应包含 C:\Scripts 中每个文本文件的第一行,后跟一个回车换行符。

http://web.archive.org/web/20081227065437/http://www.microsoft.com/technet/scriptcenter/funzone/games/games08/bevent3.mspx

源代码:event003-unobe.pl

use v6;

my $run-dir = $*PROGRAM-NAME.IO.dirname;
my @files = dir($run-dir).sort;
my $output = $*SPEC.catdir($run-dir, 'newfile.txt');
$output.IO.unlink if $output.IO.e;

# only select .txt files required for this event
for @files.grep: { .match(/test.*\.txt $$/) } {
    my $inputfh = open $_, :r;
    my $outputfh = open $output, :a;
    $outputfh.say( $($inputfh.get) ); # $(...) forces item context
    .close for $inputfh, $outputfh;
}