사용자 도구

사이트 도구


kb:windowscommands

Windows Commands

윈도우즈 커맨드 프롬프트에서 사용할 수 있는 프로그램들에 대한 정리다. 커맨드 창의 성격상(?), 아무래도 주요 관심사는 배치 작업이라고 할 수 있다.

아래에 나오는 모든 프로그램들이 기본적으로 설치되는 것은 아니고, 특정 프로그램은 리소스 킷 및 관리툴을 추가적으로 깔아야 사용할 수 있다.

1. 유용한 프로그램들

1.1. clip - 커맨드 라인 출력을 클립 보드로 복사

커맨드 라인 출력을 클립 보드로 복사한다.

현재 디렉토리의 파일 목록을 클립 보드로 복사 dir | clip
파일 안의 텍스트를 클립 보드로 복사 clip < readme.txt

1.2. findstr - 파일 내에서 문자열 찾기

유닉스 계열의 grep과 비슷한 프로그램이다. 즉 파일 내에서 문자열을 찾아서 그것을 줄 단위로 표시해주는 프로그램이다. 일반적인 문자열도 찾을 수 있고, 정규식 비슷한 것을 사용할 수도 있다. 정규식에 관한 것은 프로그램 내부 도움말을 참고하도록.

단어 찾기 findstr hello test.txt
여러 단어 중의 하나 찾기 findstr “hello there” test.txt
빈 칸을 포함한 문자열 찾기 findstr /C:“hello there” test.txt
대소문자 구별하지 않고 찾기 findstr /I hello test.txt
문자열을 포함하는 줄만 제외하고 출력하기 findstr /V hello test.txt
정규식을 이용해서 찾기 findstr /R "^hello" test.txt

1.3. sort - 표준 출력을 소팅

dir | sort

1.4. where - 디렉토리에서 파일 찾기

임의의 디렉토리에서 주어진 조건에 부합하는 파일들을 출력한다. /r 스위치를 이용해 찾을 디렉토리를 이용하지 않을 경우 환경 변수 PATH에 입력되어 있는 디렉토리들을 찾는다는 특징이 있다.

특정 문자열을 파일 이름으로 포함하는 파일들을 PATH 내에서 찾기 where bar
현재 디렉토리에서 특정 문자열을 파일 이름으로 포함하는 파일 찾기 where /r \ bar
임의의 디렉토리에서 특정 문자열을 파일 이름으로 포함하는 파일 찾기 where /r D:\foo *.txt

1.5. attrib - 파일 특성 변경

파일 특성을 화면에 표시하거나 바꾼다. 파일에 읽기 전용 속성 등이 있는 경우, del 명령어로는 지워지지가 않는데, 이 명령어를 이용해 이런 속성을 제거할 수 있다.

특정 파일들의 읽기 전용 속성 제거하기 attrib -R *.zip
특정 디렉토리에 있는 파일들의 읽기 전용 속성 제거하기 attrib -R /S /D D:\foo

1.6. fc - diff 윈도우즈 버전

파일 비교 프로그램이다. UNIX의 diff하고 비슷한 기능을 한다고 할 수 있다. 두 파일 또는 파일의 집합을 비교하고 둘 사이의 다른점을 화면에 표시한다. 유니코드 파일도 비교할 수 있다.

두 파일 간의 차이점 비교하기 fc 1.txt 2.txt
대소문자 구별하지 않고 비교하기 fc /c 1.txt 2.txt
비교 정보를 간단하게 표시하기 fc /a 1.txt 2.txt

1.7. replace - 파일을 바꾼다

타겟 디렉토리에 있는 파일들을 소스 디렉토리에 있는 파일들로 치환한다. 어떻게 보면 xcopy /D /U를 쓰는 것이 나을 수도…

1.8. xcopy - 파일 및 디렉토리 트리 복사

꽤 자주 사용하게 되는 명령어다. 이외에도 옵션이 상당히 많다.

대상 디렉토리에 있는 파일보다 새로운 원본 파일들만 복사하기 xcopy *.exe \\GAMESERVER\SBIN /d /y
디렉토리 트리 전체를 복사하기 xcopy /D /S D:\source \\GAMESERVER\target

1.9. diruse - 디스크 사용량 표시

특정 디렉토리의 디스크 사용량을 표시한다. UNIX의 df와 비슷하다고 볼 수 있을까?

특정 디렉토리의 디스크 사용량 표시 diruse d:\cuvit
특정 디렉토리 및 그 하위 디렉토리들의 디스크 사용량 표시 diruse /S d:\cuvit
특정 디렉토리 내에서 1.5메가 이상을 차지하는 디렉토리들을 표시하고 로그하기 diruse /S /M /Q:1.5 /L /* c:\users

1.10. at - cron 윈도우즈 버전

지정된 시간과 날짜에 특정 프로그램이나 명령이 실행한다. UNIX의 cron과 비슷한 기능을 한다고 볼 수 있다. at 프로그램을 사용하려면 Task Scheduler 서비스가 활성화되어 있어야한다.

매일 5시에 배치 파일 수행하기 at 05:00:00 /interactive /every:M,T,W,Th,F,S,Su cmd /c e:\ss_backup.bat

1.11. kill - 프로세스 끝내기

설명이 필요할까… 프로세스를 종료한다. PID를 인자로 줄 수도 있고, 프로세스의 이름을 정규식으로 줄 수도 있다.

1.12. rkill - 다른 컴퓨터의 프로세스 끝내기

kill 명령어의 리모트 버전이라고 할 수 있을까? 하지만 왠지 보안 쪽으로 위험할 것 같은 프로그램이다.

특정 서버 내의 프로세스들을 보기 rkill /view \\servername
특정 PID를 가진 프로세스 죽이기 rkill /kill \\servername pid
특정 이름을 가진 프로세스 죽이기 rkill /nkill \\servername process.exe
특정 서버에다 리모트킬 서비스 설치하기 rkill /install \\servername
특정 서버에서 리모트킬 서비스 제거하기 rkill /deinstall \\servername

1.13. pmon - top 윈도우즈 버전

리눅스의 top 프로그램과 비슷하다. 화면 레이아웃도 거의 같다. 실행 중인 프로세스, CPU 및 메모리 사용량 등을 일정 간격으로 폴링하며 보여준다.

1.14. soon - sleep + 명령어

at 명령과 비슷하다고도 볼 수 있는 스케쥴 프로그램이다. 하지만 좀 더 짧은 단위의 딜레이에 알맞은 프로그램이다. 몇 초 단위?

SOON CMD /C C:\JOBS\BATCH.CMD
SOON 10 CMD /C C:\JOBS\BATCH.CMD
SOON \\SERVER 60 /C \JOBS\BATCH.CMD
SOON \\SERVER /INTERACTIVE CMD /C C:\JOBS\BATCH.CMD
SOON /d /l:2 /r:30 /i:on

1.15. elogdmp - 이벤트 로그 덤퍼

해당하는 컴퓨터의 특정 이벤트 로그를 CSV 포맷으로 출력해주는 프로그램이다.

ELOGDMP machinename eventlogtype
machinename  Specify the machine to query
eventlogtype Specify the event log type: Application, Security or System

1.16. dumpel - 좀 더 나은 이벤트 로그 덤퍼

dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [-dx]

-d <days>        Filters for event last days (number larger than zero)
-e nn            Filters for event id nn (up to 10 may be specified)
-f <filename>    Output filename (default stdout)
-l <name>        Dumps the specified log (system, application, security)
-b               Dumps a backup file (use -l to specify file name)
-m <name>        Filters for events logged by name
-r               Filters out events logged by name (must use -m too)
-s <servername>  Remote to servername
-t               Use tab to separate strings (default is space)
-c               Use comma to separate fields
-ns              Do not output strings
-format <fmt>    Specify output format.  Default format is
               dtTCISucs
             where
               t - time
               d - date
               T - event type
               C - event category
               I - event ID
               S - event source
               u - user
               c - computer
               s - strings

LogParser도 참고하시라.

1.17. sc - 서비스 컨트롤러

서비스 컨트롤 프로그램. 서비스와 관련된 거의 모든 기능을 이용할 수 있다. Using SC.EXE to Develop Windows NT Services에 보면 자세한 사용법이 나와있다.

서비스 설치 sc \\GAMESERVER create HubServer binPath= d:\cuvit\sbin\hubserver.exe
서비스 제거 sc \\GAMESERVER delete HubServer
서비스 시작 sc \\GAMESERVER start HubServer
서비스 중지 sc \\GAMESERVER stop HubServer

:!: 서비스 설치시 binPath= 뒤에 한칸 띄우는 것을 주의

1.18. net - 각종 시스템 관리

온갖 잡다한 기능이 들어가 있는 프로그램이다. net /?를 입력해 보면 사용가능한 명령어가 나온다.

NET [ ACCOUNTS | COMPUTER | CONFIG | CONTINUE | FILE | GROUP | HELP |
HELPMSG | LOCALGROUP | NAME | PAUSE | PRINT | SEND | SESSION |
SHARE | START | STATISTICS | STOP | TIME | USE | USER | VIEW ]

각각의 명령어가 어떤 기능을 위한 것인지 기록해 두자니 귀찮다. 일단 자주 사용하는 기능들만 기록해 놓자.

서비스 시작/중단

NET START 서비스이름
NET STOP 서비스이름

XP 이후로는 SC.EXE가 기본적으로 포함되기 때문에 별로 쓸 일이 없다.

공유 디렉토리 연결

NET USE \\Computer\Path 패스워드 /USER:사용자이름

암호와 사용자 이름 부분은 연결하려는 컴퓨터에 현재 사용자와 같은 이름의 사용자가 있을 경우에는 생략 가능하다. 배치 파일로 만들어 시작 프로그램에다 등록해 놓으면, 대상 컴퓨터에 접근할 때마다 뜨는 로그온 프롬프트를 안 봐도 되므로 유용하다.

2. 스크립트 또는 일괄 파일에서 유용한 프로그램 및 명령어들

2.1. call

한 일괄 프로그램에서 다른 일괄 프로그램을 호출합니다.

2.2. choice

@ECHO OFFCHOICE /T 10 /C ync /N /CS /D y /M "Please type Y for YES, N for NO and C for CANCEL. (case-insensitive)."
IF %ERRORLEVEL% == 1 Echo "YES was selected"
IF %ERRORLEVEL% == 2 Echo "NO was selected"
IF %ERRORLEVEL% == 3 Echo "Cancel was selected"
IF %ERRORLEVEL% == 255 Echo "There was a serious problem."

2.3. cls

화면을 지운다.

2.4. echo

메시지를 보여주거나, 명령어 반향을 토글한다.

2.5. for

꽤 자주 사용하게 되는 명령어이다.

  • 특정 문자열을 주어진 seperator로 분리해서 그 각각의 필드를 변수로 액세스하거나…
  • 특정 디렉토리 내의 파일들에 대해서 임의의 명령을 수행하거나…
  • 초기값, 증가값, 최대값을 지정해서 주어진 횟수만큼 특정 명령을 반복하거나…

등등에 이용할 수 잇따.

특정 디렉토리 하위에 존재하는 특정 파일들에 각각 특정 명령 수행하기

SET WORK_ROOT=D:\Cuvit\CuvitCore\
SET EXTENSIONS=*.h;*.cpp
FOR /R %WORK_ROOT% %%i IN (%EXTENSIONS%) DO "c:\Program Files\WinRAR\rar.exe" a test.rar %%i

2.6. forfiles

임의의 디렉토리에 존재하는 파일들을 마스크를 이용해 검색한 후, 그 각각의 파일들에 대해 주어진 명령을 실행한다. 문제는 명령을 줄 때, 무조건 CMD 인터프리터를 이용해서 명령어를 줘야하는데, CMD 인터프리터가 UNC 패스를 지원하지 않는다는 것이다. 결국 다른 컴퓨터에 있는 파일들의 목록을 생성한 후에 이들 파일에 각각 어떤 명령을 실행하는 것이 불가능하다. FORFILES -p\\GAMESERVER -s -m*.log -c”CMD /C echo @FILE is a log file” 이런 종류의 명령이 불가능하다는 말이다. 다른 컴퓨터에 존재하는 파일들에 어떤 명령을 사용하고 싶다면 FOR + WHERE 조합을 추천한다.

FORFILES -pc:\ -s -m*.BAT -c"CMD /C Echo @FILE is a batch file"
FORFILES -pc:\ -s -m*.* -c"CMD /C if @ISDIR==TRUE echo @FILE is a directory"
FORFILES -pc:\ -s -m*.* -d-100 -c"CMD /C Echo @FILE : date >= 100 days"
FORFILES -pc:\ -s -m*.* -d-01011993 -c"CMD /C Echo @FILE is quite old!"
FORFILES -pc:\ -s -m*.* -c"CMD /c echo extension of @FILE is 0x22@EXT0x22"

2.7. freedisk

특정 드라이브를 조사해서, 주어진 값만큼의 여유 공간이 있을 경우에는 0을 리턴하고, 없을 때에는 1을 리턴한다.

freedisk drive (minimum bytes)

2.8. gettype

특정 머신에 깔려있는 OS의 종류를 레지스트리 값을 조사해서 반환한다.

gettype [\\remotemachine] [/s]

/s for Silent Mode

Returns 1 for Windows NT Workstation.
Returns 2 for Windows 2000 Professional installation.
Returns 3 for Windows NT Server Non-Domain Controller.
Returns 4 for Windows 2000 Server Non-Domain Controller.
Returns 5 for Windows NT Server Domain Controller.
Returns 6 for Windows 2000 Server Domain Controller.
Returns 7 for Windows NT [Enterprise/Terminal] Server Domain Controller
Returns 8 for Windows NT [Enterprise/Terminal] Server Non-Domain Controller

2.9. goto

배치 파일 내에서 이리저리 이동할 때 쓰인다.

2.10. if

배치 파일에서 조건 처리를 수행한다.

2.11. ifmember

특정 그룹에 속해있는 사용자를 출력하거나, 특정 사용자가 속한 그룹들을 표시한다.

2.12. pause

일괄 프로그램 처리를 일단 일시 정지하고, 다음 메시지를 보여준다.

계속하려면 아무 키나 누르십시오 . . .

2.13. prompt

cmd.exe 명령 프롬프트를 바꾼다.

2.14. rem

일괄 파일 또는 CONFIG.SYS 파일에서 주석을 기록할 때 쓰인다.

rem 이것은 주석이다.

2.15. set

환경 변수를 출력, 설정, 제거한다.

2.16. setlocal...endlocal

일괄 파일에서 환경 변경의 지역화를 시작한다. setlocal 이 시작된 후 일어난 환경 변경은 일괄 파일에만 유효하다. 이전 설정으로 복구하려면 endlocal을 사용해야 한다. 배치 스크립트 끝에 도달하면, 암시적인 endlocal이 배치 스크립트가 만든 모든 특별한 setlocal 명령어를 삭제하게 된다.

2.17. shift

일괄 파일에서 바꿀 수 있는 매개 변수의 위치를 바꿉니다.

2.18. sleep

sleep time-to-sleep-in-seconds

2.19. timeout

TIMEOUT - This utility is similar to the DOS PAUSE command.  However, it
  accepts a timeout parameter to specify a length of wait (in seconds)
  at which time it will continue without a key press.

  Written by Eric Brown, Business System Division.
  Copyright (C) Microsoft Corporation, 1992-1995.

Usage -   TIMEOUT <###>
  where <###> is a decimal number of seconds between -1 and 100000.
  The value -1 means to wait indefinitely for a key hit.

2.20. waitfor

waitfor [-t <timeout>] [-s] <signal name>
Wait until the 'signal' is given across the net.
Parameters:
-t timeout      Number of seconds to wait.  Default is forever.
-s              Send signal instead of waiting.

Only one 'waitfor' can wait on a given signal on a given machine.

3. Run 메뉴를 통해 실행할 수 있는 명령어들

To Access Run Command
Accessibility Controls access.cpl
Add Hardware Wizard hdwwiz.cpl
Add/Remove Programs appwiz.cpl
Administrative Tools control admintools
Automatic Updates wuaucpl.cpl
Bluetooth Transfer Wizard fsquirt
Calculator calc
Certificate Manager certmgr.msc
Character Map charmap
Check Disk Utility chkdsk
Clipboard Viewer clipbrd
Command Prompt cmd
Component Services dcomcnfg
Computer Management compmgmt.msc
Date and Time Properties timedate.cpl
DDE Shares ddeshare
Device Manager devmgmt.msc
Direct X Control Panel (If Installed)* directx.cpl
Direct X Troubleshooter dxdiag
Disk Cleanup Utility cleanmgr
Disk Defragment dfrg.msc
Disk Management diskmgmt.msc
Disk Partition Manager diskpart
Display Properties control desktop
Display Properties desk.cpl
Display Properties (w/Appearance Tab Preselected) control color
Dr. Watson System Troubleshooting Utility drwtsn32
Driver Verifier Utility verifier
Event Viewer eventvwr.msc
File Signature Verification Tool sigverif
Findfast findfast.cpl
Folders Properties control folders
Fonts control fonts
Fonts Folder fonts
Free Cell Card Game freecell
Game Controllers joy.cpl
Group Policy Editor (XP Prof) gpedit.msc
Hearts Card Game mshearts
Iexpress Wizard iexpress
Indexing Service ciadv.msc
Internet Properties inetcpl.cpl
IP Configuration (Display Connection Configuration) ipconfig /all
IP Configuration (Display DNS Cache Contents) ipconfig /displaydns
IP Configuration (Delete DNS Cache Contents) ipconfig /flushdns
IP Configuration (Release All Connections) ipconfig /release
IP Configuration (Renew All Connections) ipconfig /renew
IP Configuration (Refreshes DHCP & Re-Registers DNS) ipconfig /registerdns
IP Configuration (Display DHCP Class ID) ipconfig /showclassid
IP Configuration (Modifies DHCP Class ID) ipconfig /setclassid
Java Control Panel (If Installed) jpicpl32.cpl
Java Control Panel (If Installed) javaws
Keyboard Properties control keyboard
Local Security Settings secpol.msc
Local Users and Groups lusrmgr.msc
Logs You Out Of Windows logoff
Microsoft Chat winchat
Minesweeper Game winmine
Mouse Properties control mouse
Mouse Properties main.cpl
Network Connections control netconnections
Network Connections ncpa.cpl
Network Setup Wizard netsetup.cpl
Notepad notepad
Nview Desktop Manager(If Installed) nvtuicpl.cpl
Object Packager packager
ODBC Data Source Administrator odbccp32.cpl
On Screen Keyboard osk
Opens AC3 Filter (If Installed) ac3filter.cpl
Password Properties password.cpl
Performance Monitor perfmon.msc
Performance Monitor perfmon
Phone and Modem Options telephon.cpl
Power Configuration powercfg.cpl
Printers and Faxes control printers
Printers Folder printers
Private Character Editor eudcedit
Quicktime (If Installed) quicktime.cpl
Regional Settings intl.cpl
Registry Editor regedit
Registry Editor regedit32
Remote Desktop mstsc
Removable Storage ntmsmgr.msc
Removable Storage Operator Requests ntmsoprq.msc
Resultant Set of Policy (XP Prof) rsop.msc
Scanners and Cameras sticpl.cpl
Scheduled Tasks control schedtasks
Security Center wscui.cpl
Services services.msc
Shared Folders fsmgmt.msc
Shuts Down Windows shutdown
Sounds and Audio mmsys.cpl
Spider Solitare Card Game spider
SQL Client Configuration cliconfg
System Configuration Editor sysedit
System Configuration Utility msconfig
System File Checker Utility (Scan Immediately) sfc /scannow
System File Checker Utility (Scan Once At Next Boot) sfc /scanonce
System File Checker Utility (Scan On Every Boot) sfc /scanboot
System File Checker Utility (Return to Default Setting) sfc /revert
System File Checker Utility (Purge File Cache) sfc /purgecache
System File Checker Utility (Set Cache Size to size x) sfc /cachesize=x
System Properties sysdm.cpl
Task Manager taskmgr
Telnet Client telnet
User Account Management nusrmgr.cpl
Utility Manager utilman
Windows Firewall firewall.cpl
Windows Magnifier magnify
Windows Management Infrastructure wmimgmt.msc
Windows System Security Tool syskey
Windows Update Launches wupdmgr
Windows XP Tour Wizard tourstart
Wordpad write

4. 배치 파일 파라미터

아래에서 대문자 N은 인수 번호를 의미한다. 배치 파일 자체는 0번이다.

파라미터 기능
%~fN 전체 문자열. C:\utils\MyFile.txt
%~dN 드라이브 이름. C:
%~pN 드라이브를 제외한 디렉토리 문자열. \utils\
%~nN 파일 이름 또는 마지막 디렉토리 문자열. MyFile.txt
%~xN 확장자 .txt
%~sN f, n, x 이름을 8.3 형식으로 반환한다.

여러 개의 파라미터를 하나로 조합할 수도 있다. 예를 들어 %~dp0 는 배치 파일이 있는 드라이브 + 디렉토리를 반환한다.

5. 링크

kb/windowscommands.txt · 마지막으로 수정됨: 2014/11/09 21:58 (바깥 편집)