删除自己的脚本

时间:2016-11-03 16:10:36

标签: multithreading powershell

如何编写从硬盘驱动器中删除自身的脚本。让我们假设我想要实现的示例:

> dir
script.ps1
> powershell script.ps1
> dir   # <-- file do not exists
> 

我对power-shell不熟悉,但我想它应该如下所示:

  1. 脚本创建正在等待的进程
  2. 脚本结束了它的生命
  3. 进程从HD中删除script.ps1文件
  4. 进程自杀
  5. 问题是我不知道如何动态创建一个等待脚本完成其作业然后删除该文件的进程。感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

你过分思考这个问题。 PowerShell脚本在执行时不以任何方式锁定,并且它启动的任何命令都将是PowerShell进程本身的子代。一个脚本可以自由地在头脑中射击:

Remove-Item $MyInvocation.MyCommand.Source

事实上,你可以在此之后输入一个命令,看看PowerShell仍然会运行它,因为脚本已经被加载了。