0

我正在使用 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)
4

0 回答 0