이쿠의 슬기로운 개발생활

함께 성장하기 위한 보안 개발자 EverNote 내용 공유

반응형

OS/Windows 19

batch script - 변수에 특정 문자열이 포함되어있는지 확인

변수에 특정 문자열이 포함되어있는지 확인 원하는 상황 변수에 특정 문자열이 포함되어있는지 확인하고 싶음 c++의 find 함수와 같은 결과가 필요함 문법 hello test! 문자열이 저장되어있는 result변수에 test 문자열이 있는지 확인해보겠음. set result=hello test! if /I "%result:test=%" neq "%result%" ( echo find! ) else ( echo not find! ) [결과] test 문자열이 포함되어있음으로 if문 내부로 이동함. set result=hello test! if /I "%result:ttttt=%" neq "%result%" ( echo find! ) else ( echo not find! ) [결과] ttttt 문자열이 없음..

OS/Windows 2022.04.07

batch script - Symbolic link 파일, 바로가기(Short cut) 파일 찾기

Symbolic link 파일, 바로가기(Short cut) 파일 찾기 원하는 상황 폴더에 바로가기, symbolic link 파일이 존재함 해당 바로가기와 symbolic link 파일을 확인하고 싶음. test 환경에서는 C:test2 경로에 바로가기 : ShortcutTest.lnk symbolic link : symbolicLinkTest 2개가 존재함. symbolic link 파일 확인 [명령어] dir /AL /B "c:\test2" [결과] symbolic link 파일만 조회됨 바로가기 파일 확인 [명령어] dir /B "c:\test2" | find /I ".lnk" [결과]

OS/Windows 2022.04.07

batch script - 특정 경로 폴더의 하위 목록 확인

특정 경로 폴더의 하위 목록 확인 원하는 상황 set var=C:\test2 으로 설정 한 후 해당 var 변수에 설정된 경로 폴더 하위의 폴더,파일 목록을 확인 문법 for와 dir 명령을 사용 dir의 경우 /S = 하위 폴더까지 모두 확인 (해당 옵션이 없다면 파일명만 출력됨) /B = bare format으로 출력 (full 경로만 출력) set var=C:test2 for /f "tokens=*" %%d in ('dir %var% /S /B') DO ( echo %%d ) 결과

OS/Windows 2022.04.07

batch script - FOR문 내부에서 SET 처리 하는 방법

FOR문 내부에서 SET 처리 하는 방법 ERROR 상황 [test.log 파일의 내용] [test에 사용한 batch script] set var="test" for /f "tokens=*" %%a in ('type test.log') DO( set var=%%a echo %var% ) 위와 같은 script를 실행하면 var 변수 %%a 값이 저장되어 echo 시 %%a 값이 출력되길 원함 하지만 결과는 초기에 설정한 test 값이 출력됨. 해결책 SETLOCAL ENABLEDELAYEDEXPANSION 를 사용하면 됨 [test에 사용한 batch script] SETLOCAL ENABLEDELAYEDEXPANSION set var="test" for /f "tokens=*" %%a in ('typ..

OS/Windows 2022.04.07

batch script - for문 문자열 추출 (tokens, delims)

for문 문자열 추출 (tokens, delims) 원하는 상황 test.log 파일의 내용은 아래와 같음 여기서 "%SystemDrive%\inetpub\wwwroot" "C:\test" 문자열을 추출하는 것이 목표임. [token 문법] FOR 구문은 각 행별로 분석하는데 이때 token은 각 행의 몇 번째 문자열을 전달해줄지 지정함. 문자열의 기본 구분단위는 공백임. for /f "tokens=3" %%a in ('type test.log') DO( echo %%a ) [예제] tokens 설정을 1로 하는 경우 결과 = tokens 설정을 *로 하는 경우 결과 = 와 같이 tokens의 의미는 공백을 기준으로 문자열을 나눔. [delims문법] token이 공백으로 구분했다면 delims는 지정한..

OS/Windows 2022.04.07

batch script - START와 CALL의 차이점

START와 CALL의 차이점 START ??.exe 명령과 CALL ??.exe 명령 모두 exe 파일을 정상적으로 실행 시킴 하지만 두 명령의 둘의 차이점이 존재함 [CALL의 경우] CALL이 동일한 cmd에서 시작하고 호출된 batch script가 동일한 변수에 액세스할 수 있음 동일한 batch이므로 변수도 변경할 수 있음. [START의 경우] 호출된 batch script에서 새로운 cmd.exe를 만들고 /b 없이 새 창을 실행함. 새로운 batch이므로 변수를 공유할 수 없음.

OS/Windows 2022.04.07

batch script - 환경변수 문자열 안의 환경변수가 있는 경우 처리하는 방법

환경변수 문자열 안의 환경변수가 있는 경우 처리하는 방법 [원하는 상황] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 경로의 InstallPath value가 가리키는 경로로 이동하고 싶음. [문제가 되는 상황] 다음과 같은 batch script를 사용함 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" /s | find /I "InstallPath" >> test.log for /f "tokens=3" %%a in ('type test.log') DO set var=%%a del test.log cd %var% 실행시키면 아래와 같이 오류가 발생함 해당 script는 아래 image와 같이 InstallPath..

OS/Windows 2022.04.07

batch-script Registry value 값 확인 결과 변수에 저장하는 방법

Registry value 값 확인 결과 변수에 저장하는 방법 1 (파일 이용) [원하는 상황] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp 경로의 InstallPath 값을 var라는 변수에 저장하고 싶음 [temp.bat 파일 생성] reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp" /s | find /I "InstallPath" >> test.log for /f "tokens=3" %%a in ('type test.log') DO set var=%%a echo %var% [bat script 과정 정리] registry 확인 결과를 test.log 파일에 저장 test.log 파일에는 결과가 다음과 같이 저장..

OS/Windows 2022.04.07
반응형