Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 전자음악
- Ars longa vita brevis
- 자동화
- 티스토리 글쓰기 모드
- 한국문화예술위원회
- HTML의 구조
- 마크다운 html 차이
- 비킹구르 올라프손
- 2024 한화 교향악축제
- 글자관련태그
- 스틱스 심포니
- 피아노 협주곡
- 슈만
- 미디어아트
- 미디어아티스트 박형준
- 코파일럿
- 장 필립 라모
- 윈도우 폴더 구조 자동화
- Auto Rename Tag
- 자바의 정석1
- vscode
- artntech
- e.printStackTrace()
- 안유리
- html모드 기본모드 전환 오류
- 티스토리 초보
- vscode 단축키
- 정명훈 #도쿄필하모닉 #조성진
- MDN Web Docs
- css diner
Archives
- Today
- Total
Record
[Windows] PowerShell로 폴더 구조 자동 생성하기🌳 본문
SH Dev Log/Dev Tips & Best Practices
[Windows] PowerShell로 폴더 구조 자동 생성하기🌳
pf.styx 2025. 6. 28. 14:15
폴더 여러 개 만들기 귀찮아서 코파일럿한데 한 번에 만드는 방법을 물어봤는데 파워쉘로 뚝딱 만드는 방법을 알려줬다. 맨날 마우스로 딸깍딸깍 노가다 하며 만들었는데... 따봉 코파일럿아 고마워 🦔💻
1. PowerShell이란?
Windows PowerShell은 마우스 클릭 대신 텍스트 명령어로 컴퓨터 작업을 자동화할 수 있는 명령줄 셸(CLI)이자 스크립트 언어. 마우스 클릭 대신 텍스트 명령을 입력해서 컴퓨터에 시키고 싶은 일을 자동으로 처리하게 해 주는 도구임
- 차세대 터미널
CMD(cmd.exe)를 대신해 풍부한 명령(Cmdlet)과 스크립팅 기능을 제공 - 자동화 도구
폴더 생성, 파일 복사, 시스템 관리 등 반복 작업을 스크립트 한 번으로 해결 - 확장성
.NET 라이브러리를 불러다 쓸 수 있어 개발자에게 친화적
2. 기본 명령어 예시
| 기능 | 명령어 | 설명 |
|---|---|---|
| 폴더/파일 조회 | Get-ChildItem (축약: gci) |
현재 디렉터리의 파일·폴더 목록 출력 |
| 새 폴더 생성 | New-Item -ItemType Directory |
지정한 경로에 새 폴더를 생성 |
| 날짜 출력 | Get-Date |
현재 날짜·시간을 출력 |
# 예1. 현재 폴더 목록 보기
Get-ChildItem
# 예2. C:\TestFolder 라는 새 폴더 만들기
New-Item -ItemType Directory -Path "C:\TestFolder"
# 예3. 오늘 날짜 출력하기
Get-Date
3. 폴더 구조 자동 생성 스크립트
아래 스크립트를 PowerShell 창에 붙여넣고 Enter만 누르면,Documents\DevBlog 폴더 아래에 6개의 하위 폴더가 자동으로 생성됨
# 1) 기본 경로 설정
$base = "C:\Users\wblai\Documents\DevBlog"
# 2) 생성할 폴더 목록 정의
$names = @(
"01_Learning_Journal",
"02_Exercises_Tutorials",
"03_Projects_Case_Studies",
"04_Tools_Reviews",
"05_Dev_Tips_Best_Practices",
"06_Roadmaps_Retrospectives"
)
# 3) DevBlog 폴더가 없으면 생성
if (-not (Test-Path $base)) {
New-Item -ItemType Directory -Path $base | Out-Null
}
# 4) 하위 폴더 일괄 생성
$names | ForEach-Object {
$path = "$base\$_"
if (-not (Test-Path $path)) {
New-Item -ItemType Directory -Path $path | Out-Null
}
}
스크립트 실행 방법
- 시작 메뉴 → PowerShell 실행
- 위 코드를 전체 복사 → PowerShell 창에 붙여 넣기
- 마지막 줄에서 Enter 한 번 누르면 끝!
C:\Users\wblai\Documents\DevBlog경로를 탐색기에서 확인

✅ PowerShell에서 하드코딩 경로 대신 환경변수 쓰기
C:\Users\wblai\Documents\DevBlog 같은 하드코딩된 경로는 특정 사용자 환경에서만 유효한 절대 경로입니다.
다른 사람의 PC에서는 해당 사용자 폴더(wblai)가 없기 때문에 스크립트 실행에 실패할 수 있어요.
💡 이런 문제를 피하려면 $env:USERPROFILE 환경 변수를 활용해 사용자마다 다른 홈 디렉터리 경로를 자동으로 가져오는 방식이 더 좋습니다.
📁 예시 시나리오
- 사용자 A:
C:\Users\alice - 사용자 B:
C:\Users\bob
PowerShell 예제:
$base = "$env:USERPROFILE\Documents\DevBlog"
실행 결과:
- A →
C:\Users\alice\Documents\DevBlog - B →
C:\Users\bob\Documents\DevBlog
이처럼$env:USERPROFILE을 활용하면,
누구든 자기 환경에 맞는 경로로 자동 적용되기 때문에
스크립트를 더 재사용 가능하고 안전하게 공유할 수 있어요 💡
🔍 $env: 문법 요약
$env는 PowerShell에서 환경 변수에 접근할 때 쓰는 키워드예요.USERPROFILE은 현재 사용자의 홈 디렉터리를 가리키는 Windows 환경 변수입니다.$env:환경변수명형식으로 접근합니다.
다른 예제:
$env:USERNAME→ 현재 사용자 계정명 (예:alice)$env:TEMP→ 임시 파일 저장 경로
💡 명령어 요약 표
| 기능 | 명령어 | 설명 |
|---|---|---|
| 폴더 조회 | Get-ChildItem |
현재 경로의 파일/폴더 목록 출력 |
| 폴더 생성 | New-Item -ItemType Directory |
지정한 경로에 새 폴더 생성 |
| 날짜 출력 | Get-Date |
현재 시간 정보 출력 |
📦 폴더 자동 생성 스크립트 전체 코드
# 1) 기본 경로 설정
$base = "$env:USERPROFILE\Documents\DevBlog"
# 2) 만들 폴더 목록
$names = @(
"01_Learning_Journal",
"02_Exercises_Tutorials",
"03_Projects_Case_Studies",
"04_Tools_Reviews",
"05_Dev_Tips_Best_Practices",
"06_Roadmaps_Retrospectives"
)
# 3) DevBlog 폴더 없으면 생성
if (-not (Test-Path $base)) {
New-Item -ItemType Directory -Path $base | Out-Null
}
# 4) 하위 폴더들 일괄 생성
$names | ForEach-Object {
$path = "$base\$_"
if (-not (Test-Path $path)) {
New-Item -ItemType Directory -Path $path | Out-Null
}
}
🛠 실행 순서
- PowerShell 실행 (시작 버튼 클릭 후 'PowerShell' 검색)
- 위 코드 전체 복사 → PowerShell 창에 붙여넣기
- Enter 누르면 폴더들이 자동으로 생성됩니다
Documents\DevBlog경로 확인!
4. 마무리
PowerShell을 활용하면 반복되는 개발·관리 작업을 한 번에 해결할 수 있어서 편리하고 재밌었다
지금처럼 “폴더 여러 개 만들기” 수준에서 시작해, 나중에는 배포·백업·테스트 자동화까지 확장해 봐야지🗂️
'SH Dev Log > Dev Tips & Best Practices' 카테고리의 다른 글
| [블로그팁] 마크다운이 뭐야? 티스토리 기본·HTML·마크다운 모드 차이 정리 (2) | 2025.07.02 |
|---|