Perl 在windows中运行Unix命令cat以合并拆分的zip文件

Perl 在windows中运行Unix命令cat以合并拆分的zip文件,perl,Perl,我想在windows中合并拆分的zip文件。在linux系统中,我可以通过 $prefixfiles = "splittedfiles*" $outputfile = "combined.zip" @output = `cat $prefixfiles > $outputfile` 然而,在windows中,当我想要复制相同的文件(使用Exutils)时,我得到了一个损坏的zip文件,上面写着“意外的归档结束” 我以前试过使用binmode binmode "C:\linktofile\

我想在windows中合并拆分的zip文件。在linux系统中,我可以通过

$prefixfiles = "splittedfiles*"
$outputfile = "combined.zip"
@output = `cat $prefixfiles > $outputfile`
然而,在windows中,当我想要复制相同的文件(使用Exutils)时,我得到了一个损坏的zip文件,上面写着“意外的归档结束”

我以前试过使用binmode

binmode "C:\linktofile\splittedfilesaa";

任何人都可以帮忙吗?

在Windows控制台外壳中,您可以使用
copy
命令将文件与
+
操作符连接起来。将file1.txt、file2.txt和file3.txt组合成“final.txt”文件的示例:

/b
选项用于向Windows/DOS指示文件应按二进制(“原样”)处理,而不是在复制操作期间插入或重新解释行尾字符

/y
表示“不提示覆盖确认”


将您的perl脚本与@output和$prefixfiles变量一起修复,以便执行相同的操作。

更简单的答案。将
cat
替换为
type
并将stderr重定向到nul:(相当于/dev/null)

binmode "C:\linktofile\splittedfilesaa";
copy /b /y file1.txt+file2.txt+file3.txt final.txt
@output = `type $prefixfiles > $outputfile 2>nul:`