2013-05-28 65 views
4

我有这个窗口的批处理命令:批处理文件中提取字符串部分

wmic process call create "notepad.exe" | find "ProcessId" 

它返回这个字符串

(spaces) ProcessId = 13764; 

而且我需要一个变量来存储唯一PID号(13764),怎么样我可不可以做?

+0

这里是我用过同样的东西:http://ss64.org/viewtopic.php?pid=5866#p5866 – npocmaka

回答

1
for /F "delims=" %%a in ('wmic process call create "notepad.exe" ^| find "ProcessId"') do (
    for %%b in (%%a) do set value=%%b 
) 
echo %value% 

此方法返回最后一个字在线,所以它可以通过其它的线,以字的可变数量也用于开始。

0

使用此:

​​3210
+0

这不是很可靠.PID号码的长度可能会有所不同。与'FOR/F'或使用两个替换。 – npocmaka

2
for /f "tokens=2 delims=;= " %%P in ('wmic process call create "notepad.exe" ^| find "ProcessId"') do echo %%P 
0
for /f "tokens=3 delims=;=" %%a in ("(spaces) ProcessId = 13764;") do set value=%%c 
echo %value% 
相关问题