我正在使用 powershell 使用以下命令删除目录:
Remove-Item $pathAsString -Recurse -Force
但是,它给了我以下错误:
Remove-Item : Cannot remove the item at 'C:\Path' because it is in use.
At line:1 char:1
+ Remove-Item "C:\Path" -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Remove-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RemoveItemCommand
我认为这很奇怪,因为该目录不应该被使用。我可以进入文件资源管理器并手动删除目录。我不太确定为什么会发生这种行为。我对powershell相当陌生,所以不完全了解它的行为方式。
我的脚本与程序的交互包括:
- 创建文件夹
- 将 MSI 下载到文件夹
- 设置一个变量来表示存储在文件夹中的 MSI。像这样:
$MSIVariable = Get-ChildItem $Path | Where {&_.Name -eq "MSIName.msi"}
我假设与文件夹有关的东西在某种流中,但不知道如何解决这个问题。
编辑:这是我使用的涉及文件夹的代码:
创建文件夹:
if(!(Test-Path $MSILocation))
{
New-Item $MSILocation -ItemType directory
}
下载 MSI:
$webClient = (New-Object System.Net.WebClient)
$downloadLocation = Join-Path $MSILocation $MSIName
$webClient.DownloadFile($downloadURL, $downloadLocation)