2016-12-01 13 views
2

いくつかの変数を使用していますが、通常はGet-ChildItemコマンドレットから返されたオブジェクトを使用してファイルを検索し、変更された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

ちょうどパイプRemove-ItemコマンドレットへGet-ChildItem結果:これは私が作ったコードがわかったファイルがない場合は

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

、これも動作します。

+0

は確かに、ありがとう! –

1

そうではなく、Ifステートメントを使用して、あなたのコードの下の部分は、あなたが-eq使用し、「*」をドロップするのではなく場合ライクなことができ

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

ようなものになるだろうWhere-Objectを使用したいです$ VM_NAME.vhdxはファイル名と正確に一致します。

+0

'-filter'と' -include'パラメータで 'Get-ChildItem'コマンドレットを使用しているため、Where-Objectは廃止されましたか? –

+1

あなたの正しい、マーティンの答えが良いです。 –

0

削除項目は、このオプションを持って、ちょうどそれを行う

$VM_NAME="Test" 
remove-item B:\Virtualservers\Disks\Users\* -Recurse -include "$VM_NAME.vhdx" 
関連する問題