2017-08-30 101 views
0

我一直在使用这里找到的几个脚本以及其他尝试处理PowerShell脚本的来源,以从日常表单处理中删除数千个最终在我们系统上的空文件夹。有几种简单而有效的方法,但我需要一种方法来验证和选择文件夹,这样我就不会删除那些即使为空也不应删除的文件夹。从GridView输出中删除文件夹

我对$folder使用参数语句,所以我可以在命令行上输入它,否则它会提示输入。使用这个命令,我得到了gridview,如果我简单地回显输出就没有问题。但是,我似乎无法弄清楚如何将输出传递到Remove-ItemDel -Recurse。使用Del给我:

del:找不到驱动器。随着名称的驱动器“@ {全名= d”不存在。”

这似乎是它要么没有得到输出VS回声,或者它寻找一个数组?

+0

什么是你想与脚本块做你需要管的对象,通过: '| Remove-Item -WhatIf'编辑:nvm。你应该在循环之前定义'$ Folders',所以它看起来不那么怪异。 – TheIncorrigible1

+0

'del $文件夹' - >'del $ folder.FullName' –

+0

@AnsgarWiechers - 这确实修复了循环的代码,很好的调用! – UniCav

回答

1

我怀疑。?这将完成你想要的没有必要在这里一ForEach的循环,你已经与管道的工作

Get-ChildItem -LiteralPath $Target -Directory -Recurse -Force | 
    Where-Object { !$_.GetFiles('*','AllDirectories') } | 
    Select-Object -Property 'FullName' | 
    Out-GridView -PassThru -Title 'Select folders for deletion and click OK' | 
    ForEach-Object { Remove-Item -LiteralPath $_.FullName -WhatIf } 
+0

这比使用循环更清洁。谢谢! – UniCav