相关疑难解决方法(0)

如何使用PowerShell 2.0递归删除整个目录?

在PowerShell中强制删除目录及其所有子目录的最简单方法是什么?我在Windows 7中使用PowerShell V2.

我从几个消息来源获悉,最明显的命令,Remove-Item $targetDir -Recurse -Force无法正常工作.这包括PowerShell V2在线帮助(找到使用Get-Help Remove-Item -Examples)中的声明,其中声明:

...由于此cmdlet中的Recurse参数有问题,因此该命令使用Get-Childitem cmdlet获取所需的文件,并使用管道运算符将它们传递给Remove-Item cmdlet ...

我已经看到了各种使用Get-ChildItem并将其传递给Remove-Item的示例,但这些示例通常会根据过滤器而不是整个目录删除一些文件集.

我正在寻找最简洁的方法来吹灭整个目录,文件和子目录,而不使用最少量的代码生成任何用户警告消息.如果容易理解,单行会很好.

windows filesystems powershell windows-7 delete-directory

276
推荐指数
10
解决办法
35万
查看次数

PowerShell自定义提供程序RemoveItem

我正在实现自定义PowerShell提供程序.我现在正在处理remove-item cmdlet实现.

RemoveItem方法具有以下签名:

protected override void RemoveItem(string path, bool recurse)
Run Code Online (Sandbox Code Playgroud)

当我输入:Remove-Item .\Myobject -recursePowerShell基础结构为我提供了RemoveItem方法truerecurse参数值.

但是当我输入:Remove-Item.\ MyObject'我得到一个问题:

MyObject中的项目具有子项,未指定Recurse参数.如果继续,所有孩子将被移除该项目.你确定你要继续吗?[Y]是[A]是全部[N]否[L]否全部[S]暂停[?]帮助(默认为"Y"):

我想这个问题是由PowerShell基础设施呈现给我的.这非常好,因为我要删除的对象是一个容器.如果我对上述问题的回答是肯定的,那么PowerShell基础结构不会设置recurse参数.事实上,当RemoveItem调用我的方法时它是错误的.我会除了参数是真的,因为我对问题的回答是肯定的.

我的问题是:

  1. 为什么PowerShell没有将bool recurse参数设置为正确的值?

  2. 我是否需要以其他方式获得价值(回答问题)?怎么样?

  3. 如果以上是不可能的,有没有办法压制这个问题?

powershell powershell-provider

2
推荐指数
1
解决办法
3366
查看次数