FOR /F "tokens=1 delims=" %%A in ('netstat -ano | findstr 7001') do SET myVar=%%A
echo %myVar%
司令部說,它不findstr
之前承認|
,任何人都可以幫助我在這裏。如何在一個變量存儲指令的結果蝙蝠腳本
FOR /F "tokens=1 delims=" %%A in ('netstat -ano | findstr 7001') do SET myVar=%%A
echo %myVar%
司令部說,它不findstr
之前承認|
,任何人都可以幫助我在這裏。如何在一個變量存儲指令的結果蝙蝠腳本
@echo off
set portnumber=?
FOR /F "tokens=1,2,3,4,* delims= " %%a in ('netstat -ano') do call :handleline %%a %%b %%c %%d %%e
goto :eof
:handleLine
call :portcheck %1 %2 %2 %4 %5
rem you can have your check here
rem if %portnumber%==7001 do whatever
echo pid %4 uses port %portnumber%
goto :eof
:portcheck
set prot=%1
set ipandport=%2
set pid=%4
set pn1=%ipandport:~-1%
set pn2=%ipandport:~-2%
set pn3=%ipandport:~-3%
set pn4=%ipandport:~-4%
set pn5=%ipandport:~-5%
if !%pn2:~0,1%!==!:! set portnumber=%pn1% & goto :bailout
if !%pn3:~0,1%!==!:! set portnumber=%pn2% & goto :bailout
if !%pn4:~0,1%!==!:! set portnumber=%pn3% & goto :bailout
if !%pn5:~0,1%!==!:! set portnumber=%pn4% & goto :bailout
set portnumber=%pn5%
:bailout
goto :eof
特殊字符如|
必須在IN()子句內轉義或引用。請注意,不需要TOKENS = 1選項 - 這是默認值。
您可以使用
for /f "delims=" %%A in ('netstat -ano ^| findstr 7001') do set myVar=%%A
或
for /f "delims=" %%A in ('"netstat -ano | findstr 7001"') do set myVar=%%A
由於@dbenham 我相應地修改我的代碼和得到了我的ANS 這是代碼 'FOR/F 「令牌= 1,2 * delims =」 %%一個在( 'netstat的-ano^| FINDSTR 7001' )do set myVar = %% a echo%myvar:〜-4% pause' –
喜實際上我想通過在結果,我做 '的netstat -ano後得到比較端口號來獲得PID |找到7001' 此代碼返回 'C:\ Users \ sahil.makhija> netstat -ano | FINDSTR 7001' 'TCP 0.0.0.0:7001 0.0.0.0:0 LISTENING 5148' 'TCP [::]:7001 [:]:0 LISTENING 5148' ,所以我不得不作出一些改變你的代碼幫了我。 ('netstat -ano')do if %% b == 0.0.0.0:7001 set myvar = 這是新代碼 'FOR/F「標記= 1,2,5 * delims =」%% a %% c echo%myvar% pause' 這會將我的PID存儲到myvar中。 –