如何将环境变量设置为某些命令的多个输出值中的特定值?
How to set env variable to the specific value out of multiple output values of some command?
我正在使用以下命令找出某些字符串的 pid,例如我的名字。
for /f "TOKENS=1" %a in ('wmic PROCESS where "commandline like '%myname%' and name ='java.exe'" get processid') do set myid=%a
这个命令returns我下面o/p。
set myid=ProcessId
set myid=1928
set myid=
最后,它将空值设置为 myid。我如何设置进程 ID 为 1928?
for /f "TOKENS=* delims=" %a in ('wmic PROCESS where "commandline '%myname%' and name ='java.exe'" get processid /format:value') do (set "%a" >nul)
set proc
这样试试。
如果我将它放入 bat 文件,这对我有用:
@ECHO OFF
for /f "TOKENS=1 skip=1" %%a in ('wmic PROCESS where "commandline '%myname%' and name ='java.exe'" get processid') do (
SET PID=%%a
GOTO BREAK
)
:BREAK
ECHO %PID%
重要数据存储在第二个输出中,因此只需跳过第一个并在第一次迭代后退出 FOR 循环。
我正在使用以下命令找出某些字符串的 pid,例如我的名字。
for /f "TOKENS=1" %a in ('wmic PROCESS where "commandline like '%myname%' and name ='java.exe'" get processid') do set myid=%a
这个命令returns我下面o/p。
set myid=ProcessId
set myid=1928
set myid=
最后,它将空值设置为 myid。我如何设置进程 ID 为 1928?
for /f "TOKENS=* delims=" %a in ('wmic PROCESS where "commandline '%myname%' and name ='java.exe'" get processid /format:value') do (set "%a" >nul)
set proc
这样试试。
如果我将它放入 bat 文件,这对我有用:
@ECHO OFF
for /f "TOKENS=1 skip=1" %%a in ('wmic PROCESS where "commandline '%myname%' and name ='java.exe'" get processid') do (
SET PID=%%a
GOTO BREAK
)
:BREAK
ECHO %PID%
重要数据存储在第二个输出中,因此只需跳过第一个并在第一次迭代后退出 FOR 循环。