어느 날 갑자기 폴더 내의 모든 파일들에 대한 확장자 종류에 대해 조사하라는 미션이 생겼다.
윈도우 자체를 거의 사용하지 않고 개발하면서 처음 겪는 미션이라 당황스러웠는데 검색하기도 좀 애매한 상황...
간단한 해결책이 있었다.(MS Copilot의 도움!)
Powershell을 활용하면 간단했다.
$folderPath = "C:\\YourFolderPath" # 여기에 원하는 폴더 경로를 입력하세요.
$outputFile = "C:\\YourOutputFile.txt" # 여기에 결과를 저장할 파일의 경로를 입력하세요.
Get-ChildItem -Path $folderPath -Recurse | # 재귀적으로 모든 하위 폴더와 파일을 가져옵니다.
Where-Object {!$_.PSIsContainer} | # 폴더는 제외하고 파일만 선택합니다.
ForEach-Object { $_.Extension } | # 각 파일의 확장자를 가져옵니다.
# ForEach-Object { $_.Extension.ToLower() } | # 각 파일의 확장자를 소문자로 변환하여 가져옵니다.
# ForEach-Object { $_.Extension.ToLower().Trim() } | # 각 파일의 확장자를 소문자로 변환하고 공백을 제거하여 가져옵니다.
Sort-Object | # 확장자를 정렬합니다.
Get-Unique | # 중복된 확장자를 제거합니다.
Out-File $outputFile # 결과를 텍스트 파일로 출력합니다.
# 만약 파일 이름까지 필요하다면, ForEach-Object { $_.Extension } 부분을 ForEach-Object { $_.Name }로 변경하면 됩니다.
이 방법을 활용해 테스트 폴더에서 먼저 테스트 해봤고 중복을 잘 걸러내며 모든 Extension을 불러와 내 수고를 덜어줄 수 있었다.
하지만 상당히 nested 한 폴더 구조와 많은 파일들이 있다면 당연히 시간이 오래 걸린다.
간단한 미션이지만 폴더 내의 구조가 상당히 복잡하다면 눈과 손으로 하기보다 스크립트로 하는 것이 도움이 될 듯 합니다. 누군가에게 도움이 됐으면 좋겠다.
2024 AI Study Roadmap (3) | 2024.03.19 |
---|---|
NestJS를 활용한 실시간 채팅 앱 구축 (1) | 2024.03.18 |
2024년 사용하면 좋은 13가지 쿠버네티스 도구(2) (1) | 2024.02.27 |
2024년 사용하면 좋은 13가지 쿠버네티스 도구(1) (0) | 2024.02.27 |
Solidity vs Rust For Web3 App (1) | 2024.02.06 |
댓글 영역