본문 바로가기

programming language/powershell39

Powershell 이전 directory 로 돌아가기 CD - 리눅스 쉘을 사용해 보신 분들이라면~ cd - 라는 명령을 통해서 바로 직전의 directory 로 돌아갈 수 있는걸 알고 계실 겁니다. 그런데 powershell 에서는 cd – 가 동작하지 않아서 약간 불편 하더군요. 그래서 찾아보니 cd – 를 동작하도록 하는 스크립트가 있더군요. 원본 포스팅은 맨 아래의 참고자료에서 확인 하실 수 있습니다. 코드는 다음과 같습니다. Remove-Item Alias:cd function cd { if ($args[0] -eq '-') { $pwd=$OLDPWD; } else { $pwd=$args[0]; } $tmp=pwd; if ($pwd) { Set-Location $pwd; } Set-Variable -Name OLDPWD -Value $tmp -Scope g.. 2013. 10. 20.
Powershell profile 적용 및 alias 윈도우에 Powershell 이 추가 되면서 스크립트 작성이 굉장히 편리해졌는데요~ Powershell 에서도 리눅스 bash 에서와 마찬가지로 alias 를 비롯한 많은 설정들을 할 수 있습니다. 또한 이런 설정들을 .bashrc 파일에 설정하듯이 powershell 에서도 profile 파일에 설정할 수 있습니다. profile 파일을 사용하기 전에 일단 Get-ExecutionPolicy 명령을 통해 현재의 ExecutionPolicy 설정 상태를 확입합니다. 파워 쉘 스크립트를 한번도 실행안한 경우에는 Restricted로 보통 설정되어 있는데요~ 아래 명령을 통해 스크립트가 실행 가능하도록 해 줍니다. Set-ExecutionPolicy RemoteSigned 다른 실행 정책들에 대해서는 아래 .. 2013. 10. 16.
Powershell 경우의 수 조합 다 구하기(Cartesian Product) 실험을 하다 보면 경우의 수의 조합들을 다 구해서 실험을 해야 하는 경우가 있습니다. 이러한 조합의 경우의 수를 구하는 것을 Cartesian Product 라고 하는데요. 단순히 생각하면 Cartesian Product 를 구하기 위해서는 for 문을 계속 중첩해서 사용해야 하지만 이게 두~세개만 넘어가도 굉장히 헷갈리고 힘든일이 됩니다. 이러한 경우 Cartesian Product 를 구하는 함수를 만들어 놓고 사용한다면~ 굉장히 편리하죠~ 저는 Powershell 에서 Cartesian Product 를 구해야 하는 경우가 있었는데~ 아래 주소에 그 코드가 있더군요. 좋은 코드 같아서 여러분들께도 소개하려 합니다. 코드 출처 : http://makeyourownmistakes.wordpress.co.. 2013. 8. 18.
PowerShell Script가 실행되는 현재 폴더 확인 PowerShell script 를 작성하다가 현재 실행되는 스크립트의 폴더를 확인 하는 코드 입니다. 코드는 굉장히 간단한데요~ 다음과 같습니다. $fullPathIncFileName = $MyInvocation.MyCommand.Definition # Script 파일의 full path $currentScriptName = $MyInvocation.MyCommand.Name # Script 파일 이름 $currentExecutingPath = $fullPathIncFileName.Replace($currentScriptName, "") # Script 폴더 Write-Host $currentExecutingPath # Script 파일의 폴더 확인 주석을 붙였으니 설명은 딱히 필요 없을것 같군요. 2012. 12. 17.
Powershell 지정 일 이후의 파일 백업 컴퓨터를 사용함에 있어서 백업의 중요성은 100번 말해도 지나치지 않다고 생각합니다. 지금까지 컴퓨터를 써 오면서 저는 백업 또는 저장을 제대로 안 해서 짧게는 몇 시간부터 ~ 몇 개월 간의 자료들을 날려 먹은 경험이 부지기수라 백업이 항상 최 우선 입니다. 몇 시간 동안 만들 자료가 다 날라 갈 때의 그 허탈함이란…… 몇 년 전 새벽에 졸린 눈 비벼가며 작성하던 리포트가 날라 갔을 때의 기억을 생각하면 아직도 간담이 서늘해 지는군요. 지금도 생각 나는 대로 키보드를 두드리면서도 습관적으로 ctrl + S 키보드를 꾸~~~욱 누르고 있습니다. ㅋㅋㅋ 이런 백업의 중요성 때문에 가끔 윈도를 밀면서 날라갈 수도 있는 C 드라이브의 중요한 자료들은 다른 드라이브로 주기적으로 백업을 합니다. 물론 제가 매번 직.. 2012. 3. 7.
Powershell 특정 확장자 파일의 경로 다 찾기 컴퓨터를 이용하다 보면 특정 확장자의 파일 경로를 다 찾아야 할 경우가 있다. 아래 코드는 powershell 을 이용하여 D 드라이브 및 그 하위 드라이브에 있는 txt 파일들을 다 찾고 이름 및 수정 시간에 따라 정열 한 후에 d:\Temp_file_path.txt 에 그 결과를 저장하는 코드이다. $a = gci D:\* -Include *.txt –Recurse # D 드라이브 및 그 하위 폴더에 있는 txt 확장자의 파일들을 다 찾는다. $h= $a | sort-object -property directoryname -unique | sort-object -property lastwritetime # 이름에 따라 정렬하고 겹치는 이름들은 제외 한다. 그리고 수정 시간에 따라 정렬한다. $n=0 .. 2011. 4. 1.
Powershell 용량 작은 파일 지우기 컴퓨터를 사용하다 보면 특정 용량 이상 또는 특정 용량 이하의 파일들을 걸러 내고 싶은 경우가 있다. 이런 경우엔 단순히 윈도우 탐색기에서 크기에 따라 정렬을 한 이후에 드래그 하여 지우는 방법 등을 쓸 수가 있다. 하지만 같은 폴더내에 특정 확장자의 파일만 지우고 싶은 경우에는 윈도우 탐색기만으로는 부족하다. 이런 경우 powershell 을 이용하면 너무나 간단히 작업을 완료 할 수가 있다. 나의 경우엔 D:\movie_folder 안에 있는 avi 파일 중에서 용량이 100 MB 이하인 파일들을 지우고 싶었다. 위 작업을 수행하는 powershell 코드는 아래와 같다. gci d:\movie_folder\* -Include *.avi | Where-Object -FilterScript { $_.l.. 2011. 3. 6.
powershell 을 이용한 program uninstall powershell 을 이용하여 윈도우에 설치되 있는 program을 uninstall 해 보자 현재 깔려 있는 program 중 opera browser를 지우는 예제 이다. $prog= Get-WmiObject Win32_Product | Where-Object -FilterScript {$_.ToString() -match "opera"} 먼저 Get-WmiObject Win32_Product 명령을 이용하여 현재 컴퓨터에 깔려 있는 프로그램들을 찾는다. 그리고 파이프 라인( | ) 과 where-object 를 이용하여 이름중에 opera 가 들어있는 프로그램만 솎아 낸다. 이렇게 찾아낸 object 는 $prog 라는 변수에 저장 된다. 이제 다음으로는 아래 명령으로 간단하게 uninstall .. 2011. 2. 13.
폴더에 있는 파일들의 확장자 알아보기 폴더 내에 어떤 확장자 들이 있는지 확인 하고 싶을때가 있다. 이런 경우 powershell 같은 툴은 쓰지 않는다면 일일이 눈으로 확장자를 찾아서 메모장과 같은데에 기록해야 할것이다. 하지만 powershell 을 이용하면 이런 경우 명령어 몇줄로 해결 할 수 있다. 일단 폴더에 어떤것들이 들어 있는지 확인 해야 하므로 gci, dir 또는 Get-ChildItem 과 같은 명령어로 어떤 파일들이 있는지를 확인한다. 폴더는 제외 하고 파일만 검색 하기 위하여 were-obect 명령어로 폴더를 제거해준다. 이후 sort-object 명령어를 이용하여 확장자에 따른 파일을 추려 내고 중복되는 확장자들은 하나만 선택되도록 -unique 옵션을 이용한다. 그리고 마지막으로 위에서 추려진 파일에서 확장자들만 .. 2011. 1. 31.