我使用了几个变量但通常我使用从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.."}
答案 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"