2017-02-24 10 views
2

実行が完了したらスクリプトを削除することができました。実行完了後に自己フォルダを削除

function Delete() { 
    $Invocation = (Get-Variable MyInvocation -Scope 1).Value 
    $Path = $Invocation.MyCommand.Path 
    Write-Host $Path 
    Remove-Item $Path 
      }  
Delete 

ただし、スクリプトが実行されているフォルダとサブフォルダ全体を削除することはできません。これを回避する方法はありますか?それはpowershell2.0と3.0の両方で動作しますか?

+1

サブフォルダを削除すると、その他もろもろ、あなたが '削除-Item'をするために' -Recurse'パラメータを追加する必要があります。 – gvee

+0

その時点でスクリプトファイルが使用されている可能性があるため、スクリプトのあるフォルダを削除できないことがあります。さらに、現在の場所( '(Get-Location).Path')は、削除したいフォルダであってはなりません。 –

+0

私の実験では、PowerShell 2でも、スクリプトファイルを最初の行で削除することができ、スクリプトの処理を続行します。全体をメモリに読み込んでそこから実行するように見えます。 私はそれがネットワーク上にあり、最大4台のワークステーションで実行されているので、更新されたバージョンでそれを保存することはできません。 –

答えて

2

おそらく-recurse-forceパラメータを使用する必要があります。また、eを使用してスクリプトフォルダを取得する必要があります。 g。 Split-Pathレット:

function Delete() { 
    $Invocation = (Get-Variable MyInvocation -Scope 1).Value 
    $Path = $Invocation.MyCommand.Path 
    Write-Host $Path 
    Remove-Item (Split-Path $Path) -recurse -force 
      }  
Delete 
+0

それは働いた!どうもありがとう! – Karthi1234

関連する問題