我正在使用几个变量,但通常我使用从Get-ChildItem
cmdlet返回的对象来查找文件并使用更改的if语句。
但是,如何在目录中找到特定文件,如果找到它,则将其删除?这是我制作的代码:
$VM_NAME="Test"
$search=Get-ChildItem -Path B:VirtualserversDisksUsers* -include $VM_NAME.vhdx -filter *.vhdx -Recurse
if ($search.Name -contains "$VM_NAME.vhdx") {remove-item ??? }
else {write-host "Continue.."}
只需将Get-ChildItem
结果通过管道传输到Remove-Item
cmdlet:
Get-ChildItem -Path B:VirtualserversDisksUsers* -include $VM_NAME.vhdx -filter *.vhdx -Recurse |
Remove-Item -Force
如果未找到文件,这也将起作用。
删除项目有这个选项,就这样做
$VM_NAME="Test"
remove-item B:VirtualserversDisksUsers* -Recurse -include "$VM_NAME.vhdx"
因此,与其使用 If 语句,不如使用Where-Object
代码的下半部分类似于
$search.Name | Where-Object {$_ -like "*$VM_NAME.vhdx*"} | Remove-Item
您可以使用 -eq 并删除"*"而不是 -like 如果 $VM_NAME.vhdx 与您的文件名完全匹配。