ディレクトリを削除したいが、プロセスがそれを使用している。Powershellのfuser相当ですか?
mv : Access to the path 'C:\Users\mike\Documents\myapp\node_modules\' is denied.
エクスプローラには、使用中のディレクトリが記載されています。 fuser
と同等のWindows Powershellはありますか?
これはパワーシェルの質問です。私はGUIアプリケーションを起動したくありません。
ディレクトリを削除したいが、プロセスがそれを使用している。Powershellのfuser相当ですか?
mv : Access to the path 'C:\Users\mike\Documents\myapp\node_modules\' is denied.
エクスプローラには、使用中のディレクトリが記載されています。 fuser
と同等のWindows Powershellはありますか?
これはパワーシェルの質問です。私はGUIアプリケーションを起動したくありません。
は、この方法を試してください。
$lockedFolder="C:\Windows\System32"
Get-Process | %{$processVar = $_;$_.Modules | %{if($_.FileName -like "$lockedFolder*"){$processVar.Name + " PID:" + $processVar.id}}}
これは、フォルダ内の実行中のすべてのプロセスを探します。 (またはサブディレクトリ内)
このスクリプトでは、あなたはいくつかのより多くの情報を得るでしょう:
$lockedFolder="C:\Windows\System32"
Get-Process | %{$processVar = $_;$_.Modules | %{if($_.FileName -like "$lockedFolder*"){$processVar.Name + " PID:" + $processVar.id + " FullName: " + $_.FileName }}}
を私は、定着器に相当するものがないと思うが、しなければならhandle.exeと呼ばれるツールがあります最初にインストールされます。
PowerShell script to check an application that's locking a file?
ここで相対ファイルを処理する@ Eldo.Obの優れた答えの修正版です。使用の際に
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
}
}
}
}
:Eldo.Ob @
> fuser .\node_modules\
Id Path
-- ----
2660 C:\Program Files\nodejs\node.exe
ありがとう!私はこれがフルパスで動作するように見えます - 相対的なフォルダ名で動作させる方法はありますか? – mikemaccana
あなたは大歓迎です:) いいえ、フルパスではありません。スクリプトは、指定されたディレクトリまたはサブディレクトリで実行されているすべてのプロセスを取得します。したがって、 "D:\"をvar $ lockedFolderに設定すると、ディレクトリD:¥またはサブディレクトリで実行されているすべてのプロセスが取得されます。試してみてください: '$ lockedFolder =" C:\ Windows \ System32 " Get-Process | %{$ processVar = $ _; $ _。モジュール| %$ {$ processVar.Name + "PID:" + $ processVar.id + "FullName:" + $ processVar.FileName}}} ' –
ああ、私は間違いです: '$ lockedFolder =" C:\ Windows \ System32 "Get-Process | %{$ processVar = $ _; $ _。モジュール| + $ processVar.id + "FullName:" + $ _。FileName}}} ' –