查找特定文件并删除它(如果存在)

时间:2016-12-01 15:16:01

标签: powershell

我使用了几个变量但通常我使用从Get-ChildItem cmdlet返回的对象来查找文件并使用更改的if语句。

但是如何在目录中找到特定文件,如果找到它然后删除它?这是我制作的代码:

$VM_NAME="Test"
$search=Get-ChildItem -Path B:\Virtualservers\Disks\Users\* -include $VM_NAME.vhdx -filter *.vhdx -Recurse 

if ($search.Name -contains "$VM_NAME.vhdx") {remove-item ??? }
else {write-host "Continue.."}

3 个答案:

答案 0 :(得分:5)

管道Get-ChildItem结果发送到Remove-Item cmdlet:

Get-ChildItem -Path B:\Virtualservers\Disks\Users\* -include $VM_NAME.vhdx -filter *.vhdx -Recurse | 
    Remove-Item -Force

如果找不到文件,这也可以。

答案 1 :(得分:1)

因此,您希望使用Where-Object而不是使用If语句,代码的下半部分将类似于

$search.Name | Where-Object {$_ -like "*$VM_NAME.vhdx*"} | Remove-Item

如果$ VM_NAME.vhdx与您的文件名完全匹配,您可以使用-eq并删除“*”而不是“ - ”。

答案 2 :(得分:0)

remove-item有这个选项,只需这样做

$VM_NAME="Test"
remove-item B:\Virtualservers\Disks\Users\* -Recurse -include "$VM_NAME.vhdx"