我想在Windows中组合拆分的zip文件。在linux系统中,我可以通过
来完成$prefixfiles = "splittedfiles*"
$outputfile = "combined.zip"
@output = `cat $prefixfiles > $outputfile`
然而,在Windows中,当我想要复制相同的内容时(使用Exutils),我收到了一个损坏的zip文件,说“存档意外结束”
use ExtUtils::Command;
$prefixfiles = "splittedfiles*"
$outputfile = "combined.zip"
@output = `perl -MExtUtils::Command -e cat $prefixfiles > $outputfile`
我之前尝试过使用binmode
binmode "C:\linktofile\splittedfilesaa";
有人可以帮忙吗?
答案 0 :(得分:1)
在Windows控制台shell中,您可以使用copy
命令将文件与+
运算符连接起来。将file1.txt,file2.txt和file3.txt组合到“final.txt”文件中的示例:
copy /b /y file1.txt+file2.txt+file3.txt final.txt
/b
选项是向Windows / DOS指示文件应被视为二进制(“按原样”),而不是在复制操作期间插入或重新解释行尾字符
/y
表示“不提示覆盖确认”
修复你的perl脚本以及@output和$ prefixfiles变量以适合做同样的事情。
答案 1 :(得分:1)
更简单的答案。将cat
替换为type
并将stderr重定向到nul :(相当于/ dev / null)
@output = `type $prefixfiles > $outputfile 2>nul:`