배치(bat)파일 활용 모음

배치파일에서 외부파일을 읽어서 적용하는 방법

외부파일 List.txt 예시

1
2
3
A
B
C

배치스크립트 파일 Script.bat 예시

BAT (Batchfile)
@echo off

FOR /F %%a IN (List.txt) do (
	echo line: %%a
)

실행결과 (외부파일을 읽어서 한줄씩 반복문으로 출력됨)

C:\Users\Admin\Desktop\batch>run
line: 1
line: 2
line: 3
line: A
line: B
line: C

C:\Users\Admin\Desktop\batch>

배치파일에서 경로 설정 옵션

BAT (Batchfile)
@echo OFF
cd /d %~dp0

cd는 디렉토리의 변경, 「/d」는 D드라이브로의 변경.
「%0」 「%1」 「%2」라고 하는 %숫자는 인수이므로 0은 실행하고 있는 배치 파일 자체를 나타냄. (「%1」 「%2」는 배치의 제1 인수·제2 인수를 나타냄)

%와 0으로 둘러싸여 있는 dp 부분의 의미 : 드라이브나 파일 경로에서 “”를 제거하고 인수에서 “를 제거하여 순수한 경로 문자열로 만들 수 있습니다.

dp 부분은 문자열에서 무엇을 어떻게 얻을 것인가에 대한 옵션입니다.
「d」는 드라이브 문자에만 전개. 「p」는 파일명을 제외한 패스의 부분에 전개. 이므로,
「%~dp0」이란 「실행되고 있는 파일이 놓인 디렉토리」를 가리키고 있습니다.
실행 파일의 디렉토리에 대한 개념으로서 「커런트」디렉토리라고 하는 것이 존재하고 있습니다.

옵션결과설명
%0“C:\Test\예제.cmd”“포함한 전체 경로+화일 반환
%~0C:\Test\예제.cmd“제외한 전체 경로+화일 반환
%~d0C:드라이브 문자만 반환
%~p0\Test\경로만 반환
%~n0예제화일명만 반환
%~x0.cmd확장자만 반환
%~f0C:\Test\예제.cmd완전 수식 경로명 반환
%~a0–a——-파일 속성 반환
%~t02024-09-21 dhgn 05:45화일 날짜/시간 반환
%~z077파일 크기 반환 (byte단위)
%~$PATH:0C:\Test\예제.cmdPATH 환경 변수로 지정된 디렉토리를 검색하여 처음 발견된 완전 수식명 반환 (?)
%~s0C:\Test\예제.cmd전개된 경로는 짧은 이름만 반환
%~dp0%~dp0%~dp0
※ PUSHD %~DP0 대신에 CD /D %~DP0 는 동일하며, 옵션은 중첩사용이 가능하다.

배치파일로 윈도우 계정 로그인 기록 추적

BAT (Batchfile)
@echo off
echo %date%,%time%,%computername%,%username%,%sessionname%,%logonserver% >> C:\whoAreYou.txt
 날짜, 시간, Hostname명, 계정명 등

Leave a Comment