윈도우에서 파워쉘을 사용하던 중, 어느 순간부터 Get-ChildItem의 호스트 출력이 한 칸씩 밀려 나왔습니다.
처음엔 그냥 그런가 보다 했는데, 약간의 강박과 시간적 여유가 더해져 집착으로 변하기 시작하더군요.
개인적으로 검색 능력이 부족해서 시간이 오래 걸리기도 했고, 한글로 된 자료도 없는 것 같아 관련 글을 작성하게 되었습니다.
필요한 부분만 간단하게 알아보겠습니다.
시작하기 전에, $PSHOME이라는 자동 변수를 사용하여 설치 디렉터리로 이동해줍니다.
PS> CD $PSHOME : C:\Windows\System32\WindowsPowerShell\v1.0 |
1. 출력 형식
- 파워쉘 실행 함수는 기본적으로 출력 형식과 목적지가 정해져있습니다.
예를 들어, Get-ChildItem이나 Get-Process와 같은 함수는 Format-Table(테이블 보기 형식)로 출력됩니다. 이러한 기본값을 파워쉘의 Ps1Xml파일과 dll파일에서 확인할 수 있는데, Ps1Xml파일은 파워쉘의 디스플레이를 구성하는 중요한 문서(서식)라 직접 편집하거나 삭제할 수 없습니다.
단, 원본 파일을 복사하여 사용자가 지정한 데이터나 형식을 추가하고 서식을 업데이트 할 수 있습니다.
먼저, Get-ChildItem의 OutPutType(System)을 확인하기 위해 아래 명령 중 하나를 입력합니다.
PS> Get-Command Get-ChildItem | Select-Object OutputType PS> gcm gci | Select OutputType : {System.IO.FileInfo, System.IO.DirectoryInfo} |
2. 문자열 검색
- 반환된 값을 복사한 후 Select-String을 이용해 일치하는 문자열이 있는지 검색합니다.
PS> Select-String -path $PSHOME\*format.ps1xml -pattern System.IO.FileInfo,System.IO.DirectoryInfo PS> sls $PSHOME\*format.ps1xml -pattern System.IO.FileInfo,System.IO.DirectoryInfo : C:\Windows\System32\WindowsPowerShell\v1.0\FileSystem.format.ps1xml:22: <TypeName>System.IO.DirectoryInfo</TypeName> : C:\Windows\System32\WindowsPowerShell\v1.0\FileSystem.format.ps1xml:23: <TypeName>System.IO.FileInfo</TypeName> : C:\Windows\System32\WindowsPowerShell\v1.0\FileSystem.format.ps1xml:122: <TypeName>System.IO.FileInfo</TypeName> : C:\Windows\System32\WindowsPowerShell\v1.0\FileSystem.format.ps1xml:200: <TypeName>System.IO.DirectoryInfo</TypeName> |
일치하는 파일을 복사하여 이름을 변경해준 후 xml 요소를 편집해주면 됩니다.
3. Xml 편집
※ 사진을 반드시 참고하여 편집하시기 바랍니다.
- 속성 이름이나 테이블 길이, 넓이 등등 여러 요소를 추가하거나 편집할 수 있습니다.
- 저는 Get-ChildItem 함수를 사용했을 때 출력되는 값의 길이와 너비를 자동 조절(Autosize)해주기 위해 아래와 같은 문구를 추가하였습니다.
<TableControl> <AutoSize/> |
Xml 요소 편집을 끝냈으면 파일을 저장한 후 업데이트해줍니다.
4. 서식 업데이트
- 잘못된 값이 들어간 경우 파워쉘에서 오류를 반환합니다.
Update-FormatData 함수는 현재 세션(Current Session)에서 서식 데이터를 업데이트합니다.
PS> Update-FormatData -PrependPath .\FileSystem_Custom.format.ps1xml |
정상적으로 업데이트되었다면, 해당 함수를 실행했을 때의 결과가 변경된 것을 확인하실 수 있습니다.
추가 정보
만약, 매번 업데이트된 환경으로 시작하고 싶다면 다음과 같이 설정해주시면 됩니다.
PS> notepad $PROFILE - $PROFILE은 현재 세션의 경로를 뜻합니다. - $PROFILE 내에 텍스트 파일을 생성한 후 다음과 같이 입력합니다. |
> Update-FormatData -PrependPath $PSHOME\FileSystem_Custom.format.ps1xml |
위 설정을 완료하면 세션이 시작될 때마다 Update-Formatdata함수를 자동 실행합니다.
'stdFrog > 알쓸잡' 카테고리의 다른 글
[Powershell] Zip파일 압축 · 해제 오류 해결 (2) | 2022.10.07 |
---|---|
[Google Sheet] 구글 스프레드 시트 함수 예시 (0) | 2022.01.09 |
[Batch] 네트워크 설정 배치파일 예시 (0) | 2021.08.31 |
[Windows CMD] 파일 백업 & 갱신된 파일 목록 확인 (0) | 2021.06.30 |
[Windows MS-Setting] 윈도우 설정 바로가기 명령어 URI 목록 (0) | 2021.05.20 |
댓글