首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Powershell中相当于fuser?

在Powershell中相当于fuser?
EN

Stack Overflow用户
提问于 2016-08-25 14:42:01
回答 2查看 1.9K关注 0票数 1

我想删除一个目录,但是进程正在使用它。

代码语言:javascript
复制
 mv : Access to the path 'C:\Users\mike\Documents\myapp\node_modules\' is denied.

资源管理器提到正在使用的dir。是否存在与fuser等效的Windows?

注意,这是一个powershell问题。我不想启动GUI应用程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-25 14:54:27

试试这个:

代码语言:javascript
复制
$lockedFolder="C:\Windows\System32"
Get-Process | %{$processVar = $_;$_.Modules | %{if($_.FileName -like "$lockedFolder*"){$processVar.Name + " PID:" + $processVar.id}}}

这将查找在文件夹中运行的每个进程。(或在子目录中)

通过这个脚本,您将获得更多的信息:

代码语言:javascript
复制
$lockedFolder="C:\Windows\System32" 
Get-Process | %{$processVar = $_;$_.Modules | %{if($_.FileName -like "$lockedFolder*"){$processVar.Name + " PID:" + $processVar.id + " FullName: " + $_.FileName }}}

我认为这并不等同于fuser,但是有一个名为handle.exe的工具必须先安装。

PowerShell script to check an application that's locking a file?

票数 1
EN

Stack Overflow用户

发布于 2016-08-26 09:36:08

下面是@Eldo.Ob处理相关文件的优秀答案的修改版本。

代码语言:javascript
复制
function fuser($relativeFile){
  $file = Resolve-Path $relativeFile
  foreach ( $Process in (Get-Process)) {
    foreach ( $Module in $Process.Modules) {
      if ( $Module.FileName -like "$file*" ) {
        $Process | select id, path
      }
    }
  }
}

在使用中:

代码语言:javascript
复制
> fuser .\node_modules\

  Id Path
  -- ----
2660 C:\Program Files\nodejs\node.exe
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39148304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档