在Windows中运行Unix命令cat以组合拆分的zip文件

时间:2014-07-24 06:08:54

标签: perl

我想在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";

有人可以帮忙吗?

2 个答案:

答案 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:`