我想Taskkill為所有exe以cmd/檔案夾結尾的程式做powershell
例子
taskkill /f /im C:\folder\*.exe
uj5u.com熱心網友回復:
我建議您嘗試不同的內置命令實用程式WMIC.exe:
%SystemRoot%\System32\wbem\WMIC.exe Process Where "ExecutablePath Like 'P:\\athTo\\Folder\\%'" Call Terminate 2>NUL
只需P:\\athTo\\Folder根據需要更改,記住每個反斜杠都需要加倍。您可能對“檔案夾”名稱中的其他字符有困難,但這些超出了我的回答范圍。要了解有關這些的更多資訊,請閱讀LIKE Operator
注意:如果您從 批處理檔案,而不是直接在 指令,然后將%字符更改為%%
uj5u.com熱心網友回復:
在 PowerShell 中,是這樣的:
$files = gci "C:\Path\To\Files" -Filter "*.exe"
foreach($file in $files){
Get-Process |
Where-Object {$_.Path -eq $file.FullName} |
Stop-Process -WhatIf
}
當您確信將停止正確的行程時,請洗掉 -WhatIf。
uj5u.com熱心網友回復:
nimizen 有用的 PowerShell 答案是有效的,但可以簡化:
Get-Process |
Where-Object { (Split-Path -Parent $_.Path) -eq 'C:\folder' } |
Stop-Process -WhatIf
注意:上面命令中的-WhatIfcommon引數可以預覽操作。-WhatIf 一旦你確定操作會做你想要的,就洗掉。
筆記:
以上僅目標程序,其可執行檔案位于直接在
C:\folder,通過檢查(立即)父路徑是否(包圍目錄)是感興趣的一個,使用。Split-Path-Parent如果您想以
C:\Folder遞回方式定位位于及其任何子檔案夾中的可執行檔案,請使用以下內容(在Where-Object的腳本塊 ({ ... }) 中):$_.Path -like 'C:\folder\*'與Compo
wmic.exe基于有用的答案[1] 不同,此答案的解決方案也適用于類 Unix平臺(使用PowerShell (Core) 7 )。
[1] 從技術上講,wmic.exe已棄用,如第一行(非空)以紅色wmic /?列印所證明WMIC is deprecated。考慮使用 PowerShell 的 CIM cmdlet,例如Get-CimInstance, ,它具有回傳物件而不是文本的額外優勢,以便進行穩健的后續處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/362651.html
