[英]rm binary in Windows $PATH but Powershell still prefers Remove-Item
[英]Powershell remove-item with a timer?
我有一個腳本,我的用戶可以在其中在他們的計算機上安裝程序。 邏輯是->從網絡路徑復制安裝文件到計算機的本地硬盤,用不同的憑據運行安裝文件我想刪除文件但是這段代碼不好
copy-item "$path1" -Destination C:\ProgramData\ #copy from network path to local
$progyname = [System.IO.Path]::GetFileName($path1) #holding the programname.exe
Start-Process powershell -Credential $creds -workingdirectory c:\programdata\ -ArgumentList "-Command &{Start-Process $progyname -Verb RunAs}"
Remove-Item -path c:\programdata\$progyname -Force
問題是腳本會很快刪除該項目,我實際上想等待安裝完成然后刪除文件。
什么可以在這里工作?
start-process 使用 passthru 參數,將返回的 ID 保存到變量中,等待進程關閉即可刪除
你可以試試這個:
copy-item "$path1" -Destination C:\ProgramData\ #copy from network path to local
$progyname = [System.IO.Path]::GetFileName($path1) #holding the programname.exe
Start-Process powershell -Credential $creds -workingdirectory c:\programdata\ -ArgumentList "-Command &{Start-Process $progyname -Verb RunAs}"
$pro = $progynane.basename
If (!(Get-Process $pro -ErrorAction SilentlyContinue)){Remove-Item -path c:\programdata\$progyname -Force}
或者,如果您願意,您可以在Start-Process
結束時使用-Wait
參數,就像@Lee_Dailey 指出的那樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.