用于压缩WordPress插件的PowerShell

时间:2017-08-04 09:33:49

标签: wordpress powershell zip

我有一个包含WordPress插件代码的文件夹,以及以下脚本:

$folder = Join-Path $PSScriptRoot $pluginName
$destination = Join-Path $PSScriptRoot "bundles/$pluginName.zip"
Add-Type -AssemblyName "System.IO.Compression.FileSystem"

if (Test-Path $destination) {
    Remove-Item $destination
}

[IO.Compression.ZipFile]::CreateFromDirectory(
    $folder,
    $destination,
    [IO.Compression.CompressionLevel]::Optimal,
    $true # include base directory
)

如果我尝试通过将生成的zip文件上传到本地WordPress实例来安装插件,则会出现以下错误:

  

警告:复制(/var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php) :无法打开流:第257行/var/www/html/wp-admin/includes/class-wp-filesystem-direct.php中的参数无效

     

警告:复制(/var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php) :无法打开流:第257行/var/www/html/wp-admin/includes/class-wp-filesystem-direct.php中的参数无效

     

无法复制文件。 /var/www/html/wp-content/plugins/jwt-authentication-for-wp-rest-api/jwt-authentication-for-wp-rest-api\jwt-auth.php

     

插件安装失败。

但是,如果我手动压缩插件,通过右键单击Windows资源管理器中的插件文件夹并选择“发送到...” - > “压缩文件夹”,生成的zip文件安装正常。

我无法弄清楚为什么会发生这种情况,因为如果我解压缩文件夹并diff他们的内容,它们就是相同的。 (压缩文件不是,但我认为这是因为压缩级别等)。

在压缩时我是否必须设置任何特定的标志才能使其工作?如何编写生产完全的zip文件,例如“发送给...” - > “压缩文件夹”?

0 个答案:

没有答案