Windows 10 の時点で、PowerShell は最終的にジャンクションとリンクをネイティブに作成できるようになりました。
ただし、Remove-Item 関数はジャンクションを認識していないようで、確認を求めてディレクトリを削除しようとし、その中の項目を再帰的に削除する必要があるかどうかを尋ねます。
質問は、PowerShell ネイティブ コマンドレットを使用してジャンクションを削除する方法はありますか? (つまり、cmd を呼び出さずに)
Windows 10 の時点で、PowerShell は最終的にジャンクションとリンクをネイティブに作成できるようになりました。
ただし、Remove-Item 関数はジャンクションを認識していないようで、確認を求めてディレクトリを削除しようとし、その中の項目を再帰的に削除する必要があるかどうかを尋ねます。
質問は、PowerShell ネイティブ コマンドレットを使用してジャンクションを削除する方法はありますか? (つまり、cmd を呼び出さずに)
PowerShell を使用してジャンクションを削除する方法はありますか?
現在、少なくとも PowerShell v5 では、これは "修正済み" と見なされます。できることは、-Force
スイッチを使用することです。そうしないと、パスを NTFS ジャンクションと呼んでいるというエラーが発生します。少なくとも固定で引用符を使用する理由は、スイッチを使用しても、ディレクトリ内の子に関するメッセージが表示されるためです。Y を選択しても、PSv5 を使用した私のテストではジャンクションのみが削除されます。
Remove-Item "C:\temp\junction" -Force -Confirm:$False
それがうまくいかない場合、または v5 を持っていない場合は、.Net メソッドを使用してディレクトリを削除できます。これも正しく動作するようです。
[io.directory]::Delete("C:\temp\junction")