我正在尝试将二进制AFP文件附加到一个文件中。当我使用下面的代码时,同一个文件被写了三次,而不是三个文件被附加到一个文件中。为什么$bytes的值不会改变?Get-Content未成功,且未在AFP文件中导致错误。
$dira = "D:\User1\Desktop\AFPTest\"
$list = get-childitem $dira -filter *.afp -recurse | % { $_.FullName } | Sort-Object
foreach($afpFile in $list){
$bytes = [System.IO.File]::ReadAllBytes($afpFile)
[io.file]::WriteAllBytes("D:\User1\Desktop\AFPTest\Content.afp",$bytes)
}下面的脚本是在我将$bytes存储到$data变量,然后写出$data之后执行的。
$dira = "D:\User1\Desktop\AFPTest\"
$list = get-childitem $dira -filter *.afp -recurse | % { $_.FullName } | Sort-Object -descending
foreach($afpFile in $list){
Write-Host $afpFile
$bytes = [System.IO.File]::ReadAllBytes($afpFile)
$data += $bytes
}
[io.file]::WriteAllBytes("D:\User1\Desktop\AFPTest\Content.afp",$bytes)我尝试通过将三个文件中的每个文件都设置为一个变量,然后将它们添加到$data数组中来手动组合它们,但是重复的图像也会出现同样的问题。代码如下。
$dira = "D:\User1\Desktop\AFPTest\"
$list = get-childitem $dira -filter *.afp -recurse | % { $_.FullName } | Sort-Object
$file3 = [System.IO.File]::ReadAllBytes("D:\User1\Desktop\AFPTest\000001.afp")
$file2 = [System.IO.File]::ReadAllBytes("D:\User1\Desktop\AFPTest\000002.afp")
$file1 = [System.IO.File]::ReadAllBytes("D:\User1\Desktop\AFPTest\000003.afp")
$data = $file1 + $file2
[io.file]::WriteAllBytes("D:\User1\Desktop\AFPTest\AFP.afp",$data)发布于 2015-08-20 02:50:04
WriteAllBytes()总是创建一个新文件。你想要追加。试试这个:
...
$bytes = @()
foreach($afpFile in $list) {
$bytes += [System.IO.File]::ReadAllBytes($afpFile)
}
[io.file]::WriteAllBytes("D:\User1\Desktop\AFPTest\Content.afp",$bytes)https://stackoverflow.com/questions/32102352
复制相似问题