我正在使用PowerShell脚本从文件夹中创建一个zip文件,特别是将一个子文件夹和一个文件放入ZIP存档中。然而,我注意到用7zip打开存档时,该文件夹没有Store
方法(D
属性),而如果我手动创建ZIP,则会有。
由于ZIP文件是用于Minecraft数据包的,这导致该包无法被游戏识别(除非我像我说的那样手动进行ZIP)。
这是我用的脚本
#Variables
$VERSION = "5.0"
$MC_VERSION = "1.20.2"
$NAME = "snow_on_stairs"
$DATA_PACK_FOLDER = "datapack"
$PACK_EXTENSION = "v"+$VERSION+"-"+$MC_VERSION+".zip"
$DATA_PACK_PATH = ".\"+$NAME+"-"+$DATA_PACK_FOLDER+"-"+$PACK_EXTENSION
#Create data pack
Compress-Archive -Path $(".\"+$DATA_PACK_FOLDER+"\*") -DestinationPath $DATA_PACK_PATH
字符串
文件夹结构如下
RootFolder
|
+-- build.ps1
|
+-- datapack
| |
| +-- pack.mcmeta
| |
| +-- data
| |
| +-- ...
型
然后从根文件夹运行build.ps1
。
这是当我用7zip
打开它时生成的归档文件
这是手动创建的档案
正如你所看到的,虽然内容是相同的,但data
文件夹的Method
不是,当丢失时会导致游戏无法识别包。
我是否需要向Compress-Archive
命令提供某些内容以设置此属性?
1条答案
按热度按时间2wnc66cl1#
正如n0rd在评论中所说,使用7zip命令就可以了!
我不得不将
Compress-Archive
命令更改为7z a datapack.zip \datapack\* pack.png
个所以基本上我必须指定fisrt的存档文件名,然后路径到所有的文件夹和文件,我必须把。
有一件事要提到的是,最初7z命令是无法识别的,我不得不将7zip安装文件夹添加到环境PATH变量中。