我正在尝试使用Powershell v3和.NET 4.5更改文件夹中文件中的字符串,然后压缩文件夹的内容.我有字符串替换工作,但然后zip继续在目录路径上抛出ArgumentException,即使我确定它是正确的.
Exception calling "CreateFromDirectory" with "4" argument(s): "The path is not of a legal form."
At line:5 char:4
+ [System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir,
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ArgumentException
Run Code Online (Sandbox Code Playgroud)
关于ZipFile.CreateFromDirectory的Microsoft文章:http://msdn.microsoft.com/en-us/library/hh485721( v = vs.110)
.aspx
我正在尝试的代码:
function ZipFiles( $zipfilename, $sourcedir )
{
[Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem")
$compressionLevel = [System.IO.Compression.CompressionLevel]::Optimal
[System.IO.Compression.ZipFile]::CreateFromDirectory($sourcedir,
$zipfilename, $compressionLevel, $false)
}
Get-Content public-build\index.html | ForEach-Object { $_ -replace "data-default-api=`"dev`"", "data-default-api=`"test`"" } | Set-Content public-build\index2.html
cp public-build\index2.html public-build\index.html
rm public-build\index2.html
ZipFiles("public-build.zip", "C:\Users\Administrator\Desktop\public-build")
Run Code Online (Sandbox Code Playgroud)
我尝试将"C:\ Users\Administrator\Desktop\public-build"更改为:"C:\ Users\Administrator\Desktop\public-build \"
"C:\\ Users \\ Administrator \\ Desktop \\ public -build"
"C:\\ Users \\ Administrator \\ Desktop \\ public-build \\"
"public-build"
"public-build \"
".\ public-build"
".\ public-build \"
All扔同样的错误.我还试过一个只是"publicbuild"的foldername,以防它是连字符,但仍然有同样的错误.
我很难过.我想做的就是压缩文件夹.希望有人会指出我正在犯的一些明显的错误,但除此之外,我也欢迎任何替代方法.我不想安装第三方工具,但如果没有其他解决方案,可能不得不诉诸它.
mjo*_*nor 25
我认为问题在于你在调用函数时提供参数的方式.在Powershell中,参数作为空格分隔值提供,它不使用()语法.
ZipFiles "public-build.zip" "C:\Users\Administrator\Desktop\public-build"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4801 次 |
| 最近记录: |