You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell使用Remove-Item删除目录提示被占用 此前正常运行原因咨询

问题描述
  • 需要删除路径为C:\Public\Folder的文件夹,该文件夹内含7个脚本文件
  • 现有CopyFiles.ps1脚本逻辑:先将其中4个脚本复制到指定存储位置,复制完成后删除原文件夹及剩余文件
  • 该脚本此前运行正常,近期执行时出现目录被占用无法删除的报错
脚本内容
[string] $Path = "";
[string] $Destination = "";

# Copy the Folder
[string] $Destination = "C:\ProgramData\Path\To\Folder";
[string] $Path = "C:\Public\Folder";

Copy-Item -Path $Path -Destination $Destination

#Copy Files
[string[]] $Files = ("CreateUser.ps1", "RemoveFiles.ps1", "RemoveUser.ps1", "UpdateUser.ps1");

foreach($file in $Files)
{
    $Script = $Path + "\" + $file
    write-host $Script
    Copy-Item -Path $Script -Destination $Destination
}


[string] $Path = "C:\Public";

Remove-Item -Path $Path -Include *UserManager* -Recurse -Force
报错信息

Remove-Item : Cannot remove the item at 'C:\Public' because it is in use.
At C:\Public\Folder\CopyFiles.ps1:24 char:1

此前可正常运行、现在报错的常见原因
  • 脚本运行位置变更:你当前运行的CopyFiles.ps1本身就存放在C:\Public\Folder路径下,脚本运行时PowerShell会锁定正在执行的脚本文件及所在目录,自然无法删除。如果此前你是将CopyFiles.ps1放到其他路径下执行,就不会触发自身占用的问题。
  • 当前工作目录变更:若执行脚本时PowerShell的当前工作目录为C:\Public或其下级子目录,该目录会被PowerShell进程锁定,无法删除。此前运行时如果工作目录在其他路径,就不会出现该问题。
  • 新增目录占用进程:近期可能有新增进程对C:\Public路径进行访问锁定,常见的包括:
    • 杀毒软件新增了对公共目录的实时扫描规则,扫描时锁定了目标目录
    • 文件资源管理器打开了C:\Public或其下级目录,资源管理器会对当前打开的目录加锁
    • 其他后台脚本/程序新增了对该路径的定时访问、备份逻辑
  • 系统规则变更:Windows更新或PowerShell版本升级后,对文件/目录的锁定逻辑更严格,此前允许删除正在运行脚本所在目录的情况不再被允许。

内容的提问来源于stack exchange,提问作者Subscaper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:24:02