首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除-条目Vs [System.IO.File]::Delete()

删除-条目Vs [System.IO.File]::Delete()
EN

Stack Overflow用户
提问于 2015-04-07 04:25:27
回答 1查看 2.4K关注 0票数 1

在Azure运行簿中有以下代码:

代码语言:javascript
复制
$pathToDownloadedBlob = 'C:\depId-20150904032522\SevenZipSharp.dll'
if ((Test-Path $pathToDownloadedBlob) -eq $true)
{
    try
    {
        Remove-Item -Path $pathToDownloadedBlob

    }
    catch
    {
        write-error "Could not delete $pathToDownloadedBlob. - $($error[0])"
        exit
    }
}

当我使用Remove-Item时,我会得到以下错误:

代码语言:javascript
复制
4/7/2015 2:14:14 PM, Error: Remove-Item : The converted JSON string is in bad format.
At DavidTest:45 char:45
+ 
    + CategoryInfo          : InvalidOperation: (System.Unauthor... Boolean force):ErrorRecord) [Remove-Item], 
InvalidOperationException
    + FullyQualifiedErrorId : JsonStringInBadFormat,Microsoft.PowerShell.Commands.RemoveItemCommand

当我使用[System.IO.File]::Delete($using:path)时,我会得到以下错误:

代码语言:javascript
复制
4/7/2015 2:22:48 PM, Error: Exception calling "Delete" with "1" argument(s): "Access to the path 'C:\Deployment\SevenZipSharp.dll' is denied."
At DavidTest:46 char:46
+ 
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : UnauthorizedAccessException

我知道我没有权限删除这个文件。然而,为什么当我使用Remove-Item时它会抱怨JSON字符串

编辑:注意,这只发生在Azure自动化。但是,我无法在本地的Powershell ISE中复制这一点,因为我对希望删除的文件有权限。

更新:我刚刚意识到这只发生在.dll文件上。如果我试图删除一个.7z文件,它可以正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-07 04:46:36

我可以想象,这是由于在PowerShell工作流上下文和默认运行在单独进程中的InlineScript工作流活动之间传递的对象的序列化/反序列化。

您总是传入一个[System.String],还是有时传入一个[System.IO.FileInfo]对象?如果是后者,那么您可能希望引用FullName属性,而不是将对象本身传递给Remove-Item

我不能百分之百肯定这就是你遇到的,但这是值得讨论的。

顺便说一句,作为一种最佳实践,总是明确地命名您的参数,以便其他人了解您正在做的事情。根据名称,对Remove-Item的调用不包括-Path参数,因为它的位置是0。当然,当你寻求帮助的时候,这并不是一件理所当然的事情。最好长篇大论。

希望这至少有一点帮助。顺便问一下,这个问题是独有的,还是也存在于本地执行的PowerShell工作流中?

编辑:在本地,这段代码似乎运行得很好。

代码语言:javascript
复制
workflow test {
    $Path = 'C:\dsc\srv01.xml';
    InlineScript { Remove-Item -Path $using:Path; };
}

test
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29483729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档