본문 바로가기
꿀팁

20201123#(10) powershell로 window 자동화해보기(Window Automation)

by zho 2020. 11. 23.

google image

powershell - 마이크로소프트가 개발한 확장 가능한 명령 줄 인터페이스 셸 및 스크립트 언어를 특징으로 하는 명령어 인터프리터이다.( google)

 

여러분들 중 powershell에 대해 들어 본 사람이 있는가? 나는 선임분 중 한 분이 powershell관련 책을 읽고 있는 걸 본 게 첫 powershell과의 만남이었다.

그분은 powershell을 통해 업무 자동화를 시키는 프로그램을 구현했으며 꽤나 괜찮다고 생각했다. 그러다 한 프로그램의 data값이 예전 걸로 설정돼있어서 최신 걸로 수정해야 되는 상황이 생겼다. 그래서 이걸 어떻게 할까 생각하는데 또 다른 선임분이 인터넷 검색을 통해 고치시다가 내가 옆에서 흥미롭게 보니 선뜻 한번 해보라고 기회를 주셨다. 그렇게 인터넷 검색을 통해 처음으로 구현해낸  powershell 은 디스크 용량확인이었다. 코드는 다음과 같다

 

$Disks = Get-WmiObject -class Win32_LogicalDisk

Foreach($Disk in $Disks)

{

         "$" + $Disl.DeviceID

 

         $Size = [Math]::Round($Disk.Size/1024/1024/1024/1024,2)

         $avail = [Math]::Round($Disk.Freespace/1024/1024/1024/1024,2)

         $used = ($size-$avail)

 

         "Size:"+ ($size)+"TB"

         "Used:"+ ($used)+"TB"

         "Avail:" + ($avail)+"TB"

         "Percent:"+ [Math]::Round($used/$size, 2) * 100+"%"

}

pause

 

그 프로그램이 잘 작동하는걸 보고 사람들이 이용할만한 프로그램을 또 만들고 싶다는 생각이 들었다. 그래서 업무 중 불편한 게 뭐가 있을까 생각을 하다, 업무 특성상 여러 가지 홈페이지와 파일들을 켜놔야 한다. 이로 인해 컴퓨터 재부팅 시 홈페이지와 파일들을 켜기 위해서 시간이 꽤나 소모되고 귀찮은 편인데 이를 그냥 프로그램 동작 하나로 한 번에 전부 켜지게 할 수는 없을까? 생각이 되어서 searching을 했다. 그래서 찾은 함수는 start와 Invoke-item이다.

*Start

start는 start뒤에 접속하고싶은 url을 넣게 되면 프로그램을 실행시켰을 때 접속이 된다. 예를 들어 start "www.naver.com"이렇게 작성하게 되면 www.naver.com 창이 자동으로 켜지게 된다.

*Invoke-Item

Invoke-item은 Invoke-item뒤에 접속하고싶은 폴더나 파일의 위치를 넣게 되면 켜지게 된다. 예를 들어 C드라이브에 있는 download폴더를 켜고 싶다면 Invoke-Item "C:\download"이렇게 작성하게되면 c드라이브 내 download폴더가 열리게 된다.

좀 더 응용해서 C드라이브-download-namelist.hwp 즉 c드라이브 내 download폴더 안에 있는 namelist라는 한글파일을 열게 할 수도 있다. 코드는 다음과 같다. Invoke-Item "C:\download\namelist.hwp"

이런식으로 하면 컴퓨터 시작하고 여러 가지를 켜야 하는 수고로움을 한방에 해결 가능하게 되었다.

여기서 기능을 좀 더 추가해볼까? 해서 추가한것은 바로 text를 저장하는 함수이다. 이를 이용해서 파일을 열 때 쳐야 하는 비밀번호를 프로그램 실행시키면 text복사가 되어서 바로 ctrl+v 하면 비밀번호가 입력이 되게 만들었다. 코드는 다음과 같다.(추가 예정) 

 

이렇게 만든 프로그램이름은 Rebooting_v0.1이다! 내가 기획하고 구현해낸 거라 뭔가 기분이 좋다. 앞으로 발전시켜서 유용하게 쓸 수 있게 만드는 게 목표이고, 또 다른 유용한 프로그램을 만들도록 노력할 것이다.

 

 

 

728x90