Batch file 获取正在运行的进程的完整路径并将其保存到变量

Batch file 获取正在运行的进程的完整路径并将其保存到变量,batch-file,Batch File,我想获得运行进程的完整路径,并将其保存到变量中。 假设我想获取名为notepad.exe的文件的完整路径 我试图寻找解决办法,但没有找到。 我认为可以使用tasklist命令或类似的命令来完成。。 我不确定 有什么想法吗?不确定DOS命令,但您可以尝试获取WmiObjectpowerShell commandlet,如下所示 (Get-WmiObject -class Win32_Process -Filter 'Name="notepad.exe"').path.SubString(0, (G

我想获得运行进程的完整路径,并将其保存到变量中。 假设我想获取名为notepad.exe的文件的完整路径

我试图寻找解决办法,但没有找到。 我认为可以使用tasklist命令或类似的命令来完成。。 我不确定


有什么想法吗?

不确定DOS命令,但您可以尝试
获取WmiObject
powerShell commandlet,如下所示

(Get-WmiObject -class Win32_Process -Filter 'Name="notepad.exe"').path.SubString(0, (Get-WmiObject -class Win32_Process -Filter 'Name="notepad.exe"').path.LastIndexOf('\'))
这将返回结果

C:\Windows\system32

我想你想在powershell里这样我们可以做到

$a=( Get-Process -ProcessName * | Format-List path )
以$a获取所有路径 只需在cmd中执行即可

powershell -command Get-Process -ProcessName * ^| Format-List path

如果要测试的可执行文件位于
%PATH%
中,最简单的解决方案是使用
~$PATH
扩展
for
循环。(在控制台窗口中,
帮助获取完整详细信息。)

对于(notepad.exe)中的%%I,请设置“exepath=%%~$PATH:I”
回显%exepath%
如果需要直接从进程获取路径,可以使用
wmic

wmic进程,其中“name='notepad.exe'”获取可执行路径
您可以使用
for/f
循环将结果捕获到变量中。WMI查询结果通常采用奇怪的编码(UCS-2 Little Endian,如果我没记错的话),因此查询一次性列有助于防止捕获过程中出现奇怪的情况

@echo关闭
setlocal
对于/f“令牌=2 delims=,”%%I in(
'wmic进程,其中“name='notepad.exe'”获取可执行路径^Handle/format:csv^ |查找/i“notepad.exe”'
)设置“exepath=%%~I”
回显%exepath%

是否在(“'where cmd.exe”“”中对/F%b测试此
是否设置了=%b
将cmd的路径放入变量它不会获取我的文件的完整路径。我得到了这个:“C:\Users\tom\Desktop\Pixel”而不是这个:“C:\Users\tom\Desktop\Pixel war 2”哦,我真的找到了
对于/f“delims=“%%i in('dir/s/b/a-d”Player.exe“'),请设置对我有效的=%%i
。但是谢谢你的帮助。这个答案不能保证返回一个填充的可执行路径来运行进程。这不是我要检查的。