Batch file 如何将env变量设置为某个命令的多个输出值中的特定值?
我使用下面的命令来找出一些字符串的pid,例如mynameBatch file 如何将env变量设置为某个命令的多个输出值中的特定值?,batch-file,command-line,Batch File,Command Line,我使用下面的命令来找出一些字符串的pid,例如myname for/f“TOKENS=1”%a in('wmic PROCESS where“命令行,如“%myname%”和name='java.exe''get processid')设置myid=%a 此命令返回的值低于o/p set myid=ProcessId 设置myid=1928 设置myid= 最后,它将空值设置为myid。如何设置进程id,即1928 for /f "TOKENS=* delims=" %a in ('wmic
for/f“TOKENS=1”%a in('wmic PROCESS where“命令行,如“%myname%”和name='java.exe''get processid')设置myid=%a
此命令返回的值低于o/p
set myid=ProcessId
设置myid=1928
设置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仍然显示空白值。在命令行和“%myname%”之间添加了like谢谢您的回复。这对我不起作用。在命令本身中看到一些问题。@Karn-已修复。忘记设置令牌和delims。请注意格式,仍然可以看到下面列出的问题。mynamevalue)此时意外。谢谢,它解决了我的问题。早些时候,我在批处理文件中进行了尝试,因此遇到了一些困难