728x90
반응형
PowerShell 은 운영체제에 거의 직접적으로 접근하기 때문에,
여러 가지 부분에서 아주아주 강력하게 운영체제를 다룰 수 있다.
그렇기에 때로는 조심스럽게 사용해야 한다.
개발 과정에서 명령어(코드)가 제대로 돌아가는지 확인하기 위해서 사용하는 기능 2가지가 있다.
Confirm 과 WhatIf 이다.
Confirm 은 사용자의 클릭 횟수를 받는 것이고,
WhatIf 는 실행은 하지만, 시스템에 영향을 주지 않는 것이다.
테스트 해보자!
1. Confirm | 실행하기 전 사용자의 허락을 받는 옵션
"#########################################"
"#### Start PowerShell, about 'Confirm'"
# 새 폴더 만들기, 폴더 이름 'NaEaW', 경로 '\' , 사용자의 확인을 받아서 실행
New-Item -Name "NaEaW" -Path "\" -ItemType Directory -Confirm
# 폴더 내 목록 보기, 경로 '\', 이름이 ~~NaE~~~ 인 것들만
Get-ChildItem -Path "\" -Name *NaE*
주석에 작성한 것과 같이,
사용자의 허가를 받아서, 새로운 디렉토리를 만드는 것이다.
실행 결과를 보자.
Confirm 창이 생겼고, 'yes'를 클릭하면, 폴더를 하나 만든다. 만약 No 를 선택하면 디렉토리를 만들지 않는다.
2. WhatIf | 실행은 되나 실행되지 않는 옵션. 명령어 오류만 확인
"#########################################"
"#### Start PowerShell, about 'Confirm'"
# 새 폴더 만들기, 폴더 이름 'NaEaW', 경로 '\'
New-Item -Name "NaEaW" -Path "\" -ItemType Directory -WhatIf
# 폴더 내 목록 보기, 경로 '\', 이름이 ~~NaE~~~ 인 것들만
Get-ChildItem -Path "\" -Name *NaE*
confirm 과 달리, 바로 실행한다.
하지만, 명령어 실행 후에도 변하는 게 없다. 즉, 명령어의 오류만 검사할 뿐 실행은 되지 않는다.
결과는 오류만 반환할 뿐, 오류가 없어도 명령어 실행에 따른 결과는 없다.
3. 결론
파일 삭제, Remove-Item 같은 것이나, Recurse 같은 것 등을 테스트 할 때에 -Confirm 과 -WhatIf 이 두 옵션을 적절히 섞어서 사용하면 테스트 코드가 완벽하게 돌아갈 수 있을 것이다.
728x90
반응형
'Windows > PowerShell' 카테고리의 다른 글
PowerShell | Write-Host, Write-Output 차이 (0) | 2022.07.07 |
---|---|
PowerShell | 명령어, 코드가 길어 질 때 개행, 줄바꿈 하기 (0) | 2022.07.05 |
PowerShell | Windows 서비스 목록, 상태 보기 (0) | 2022.06.25 |
PowerShell | 특정 프로세스 마다 CPU, 메모리 사용량 구하기 (0) | 2022.06.23 |
PowerShell | 환경변수 확인 (cmd) (0) | 2022.06.23 |
댓글