반응형
netstat 조회 결과 중 pid 값을 taskkill 명령어에 써먹는 batch파일을 만들려고 함
1. netstat 명령어 실행 -> 결과 중 3148 을 변수에 저장하려고 함
C:\Users>netstat -ano | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 3148
TCP [::]:8080 [::]:0 LISTENING 3148
2. 변수에 3148을 대입하는 명령어
1) %a 변수에 netstat 결과 중 3148을 넣는다
2) result 변수에 %a를 대입한다
for /f "tokens=5 delims= " %a IN ('netstat -ano ^| findstr 8080') do set result=%a
tokens : 결과에서 몇 번째를 저장할 지 설정
delims : 구분자
"tokens=5 delims= " : 공백을 구분자로 다섯번째 문자열을 선택(3148)
%a : 임시로 쓸 변수
result : 명령어 저장할 변수
in ( ) : 실행할 명령어를 넣는다.
do() : 앞의 명령어 실행 후 실행할 내용
* 명령어에 ' | ' 나 ' ( ' 같은 특문이 있으면 앞에 ^를 붙일 것
* 변수 세팅시 ( set 변수=%a) 공백 없도록
* batch파일에 적을 때에는 %a에 %를 하나 더 붙인다
cmd에 실행한 예시
netstat 결과가 두줄이라 그런지... set result가 두 번 실행됨..
C:\Users\heirr>for /f "tokens=5 delims= " %a IN ('netstat -ano ^| findstr 8080') do set result=%a
C:\Users\heirr>set result=3148
C:\Users\heirr>set result=3148
C:\Users\heirr>echo %result%
3148
반응형
batch 파일 내용(test.bat)
//batch 파일을 관리자로 실행하기 위해 넣었음
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
cd ../
for /f "tokens=5 delims= " %%a IN ('netstat -ano ^| findstr 8080') do set result=%%a
//result 변수를 taskkill 명령어에 사용
taskkill /f /pid %result%
//batch 파일로 실행한 cmd가 자동종료되지 않게 하기 위함
cmd /k
반응형
'코딩 관련 > 기타' 카테고리의 다른 글
[R] 'origin'이 반드시 주어져야 합니다 (0) | 2021.04.30 |
---|---|
[GitHub] 원격 저장소 remote origin 변경 (0) | 2021.04.13 |
[VSCode][Tomcat] 'C:\Program' is not recognized as an internal or external command,operable program or batch file. (0) | 2021.03.19 |
[R] R studio 그래프 그리기 (0) | 2021.03.08 |
github와 이클립스 연동(git hub에 코드 업로드하기) (0) | 2020.10.11 |