Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何将env变量设置为某个命令的多个输出值中的特定值?_Batch File_Command Line - Fatal编程技术网

Batch file 如何将env变量设置为某个命令的多个输出值中的特定值?

Batch 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

我使用下面的命令来找出一些字符串的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 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)此时意外。谢谢,它解决了我的问题。早些时候,我在批处理文件中进行了尝试,因此遇到了一些困难