gpt4 book ai didi

powershell - 创建文件夹的zip,然后删除内容

转载 作者:行者123 更新时间:2023-12-02 23:24:39 25 4
gpt4 key购买 nike

我有一个简单的文件夹结构,需要压缩后才能上传到AWS Lambda函数

node-modules/
index.js
package.json

上面的文件在根目录中。基本上,最终目标是我想要所有这些文件和子文件/目录的zip文件,而不是原来的结构。

当我尝试运行下面的命令时,它说它无法访问 E://apps/myapp/release.zip,因为它正在被另一个进程使用。但是我可以看到它开始创建release.zip,但是它没有所有内容。
Add-Type -Assembly "System.IO.Compression.FileSystem";
[System.IO.Compression.ZipFile]::CreateFromDirectory(E://apps/myapp, E://apps/myapp/release.zip);

所以我尝试了另一种方法。取出文件夹和两个文件,然后将它们复制到一个临时文件夹中,然后尝试将其压缩回根目录。
Copy-Item E://apps/myapp E://apps/myapp/temp -recurse

我确实看到了 temp/文件夹,但是在temp文件夹中,这就像是一个开始直到文件路径变得太长才结束副本。

任何提示将不胜感激。

最佳答案

问题可能是您在尝试压缩的文件夹中创建了zip文件。当您尝试使用临时文件夹(因此启动)时,您基本上会执行相同的操作。

尝试在要压缩的源文件夹之外创建目标。

$source = "E://apps/myapp"
$destination = "E://apps/myapp.release.zip"

# If the archive already exists, an IOException exception is thrown.
if(Test-Path $destination) {
Remove-Item -Path $destination -Force -Recurse -Confirm:$false
}

[Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" )
[System.IO.Compression.ZipFile]::CreateFromDirectory($source, $destination)

# Once archive created delete folder
if(Test-Path $destination) {
Remove-Item -Path $source -Force -Recurse -Confirm:$false
Write-Host "directory removed: $source"
}

关于powershell - 创建文件夹的zip,然后删除内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40371849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com