PowerShell的解压拒绝访问
问题描述:
我有一个应该解压目录中的一些文件PowerShell脚本,但是当我运行它,它抛出这个错误:PowerShell的解压拒绝访问
Exception calling "ExtractToDirectory" with "2" argument(s): "Access to the path
'E:\SubFolder\SubFolder2\SubFolder3' is denied."
At line:7 char:5
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\Sub ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : UnauthorizedAccessException
我已经给自己完全控制每个单独的文件夹在路径中并以管理员身份运行(仅用于测试),并且仍会引发错误。
这里是我的代码
Add-Type -AssemblyName System.IO.Compression.FileSystem
function Unzip
{
param([string]$zipfile)
[System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, "E:\SubFolder\SubFolder2\SubFolder3")
}
$Files = get-childitem "E:\SubFolder\SubFolder2\SubFolder3"
foreach ($i in $files)
{
Unzip "SubFolder\SubFolder2\SubFolder3\$i"
}
有人能指出我在正确的方向得到这个工作?
答
在Get-ChildItem
Get-ChildItem "E:\SubFolder\SubFolder2\SubFolder3" | Where { $_.Extension -eq ".zip" }
添加Where
我也建议调用解压缩功能
Unzip $i.FullName
+0
'Get-ChildItem“E:\ SubFolder \ SubFolder2 \ SubFolder3 \ *。zip”'也可以。 – JosefZ
当你改变的说法我不能复制的错误,但也许尝试在Get-ChildItem中添加'Where'子句:'get-childitem“E:\ SubFolder \ SubFolder2 \ SubFolder3”|其中{$ _。Extension -eq“.zip”}' – dbso
这已经成功了。在下面发布您的答案,我会接受。谢谢! – Cornflake2068