Welcome to my personal script repository! This collection of PowerShell and batch scripts is designed to automate various tasks, such as creating folder structures and managing system operations. These scripts are tailored to my workflow, but feel free to adapt them to your needs.
This PowerShell script automates the creation of a custom folder structure for different categories of my life, including Personal, Academic, Development, and Music. It dynamically generates subfolders based on user input, making organization effortless.
- Customizable folder structures for various life categories.
- Dynamic course subfolders (Lectures, Assignments, Exams, etc.).
- Python and Web Development subfolder creation.
- Music Genres for better organization of media files.
.\create_folder_structure.ps1 -BaseDir "<BaseDirectory>" -MainDirectories "<Category1>", "<Category2>", ... -PersonalSubfolders "<Subfolder1>", "<Subfolder2>", ... -Courses "<Course1>", "<Course2>", ... -CourseSubfolders "<Subfolder1>", "<Subfolder2>", ... -PythonSubfolders "<Subfolder1>", ... -WebDevSubfolders "<Subfolder1>", "<Subfolder2>", ... -MusicGenres "<Genre1>", "<Genre2>", ...
Parameter | Description | Example |
---|---|---|
-BaseDir |
The base directory where the folders will be created | "D:\" |
-MainDirectories |
Main categories (Personal, Academic, Dev, Music) | "Personal", "Academic", "Dev", "Music" |
-PersonalSubfolders |
Subfolders under Personal (e.g., Documents, Photos, Videos) | "Documents", "Photos", "Videos" |
-Courses |
List of courses to create subfolders for | "CS_300_Algorithms", "CS_301_Web_Development" |
-CourseSubfolders |
Subfolders for each course (e.g., Lectures, Assignments, Exams) | "Lectures", "Assignments", "Exams" |
-PythonSubfolders |
Subfolders for Python development (e.g., Web Scraping, ML) | "Machine_Learning", "Web_Scraping" |
-WebDevSubfolders |
Subfolders for Web Development projects (e.g., React, Node) | "React_Projects", "NodeJS_Projects" |
-MusicGenres |
Genres for Music subfolders (e.g., Pop, Jazz, Classical) | "Pop", "Rock", "Jazz" |
To create the folder structure in D:\
with specific subfolders:
.\create_folder_structure.ps1 -BaseDir "D:\" -MainDirectories "Personal", "Academic", "Dev", "Music" -PersonalSubfolders "Documents", "Photos", "Videos" -Courses "CS_300_Algorithms", "CS_301_Web_Development" -CourseSubfolders "Lectures", "Assignments", "Exams" -PythonSubfolders "Machine_Learning" -WebDevSubfolders "PHP_Projects", "Astro_Projects" -MusicGenres "Pop", "Jazz"
D:
├── Personal
│ ├── Documents
│ ├── Photos
│ ├── Videos
│ └── Notes
├── Academic
│ ├── Courses
│ │ ├── CS_300_Algorithms
│ │ │ ├── Lectures
│ │ │ ├── Assignments
│ │ │ ├── Exams
│ │ │ └── Project
│ │ └── CS_301_Web_Development
│ │ ├── Lectures
│ │ ├── Assignments
│ │ ├── Exams
│ │ └── Project
│ ├── Thesis
│ └── Research
├── Dev
│ ├── Python
│ │ └── Machine_Learning
│ ├── Web_Development
│ │ ├── PHP_Projects
│ │ └── Astro_Projects
│ ├── Tools
│ └── Learning
└── Music
├── Playlists
├── Downloads
├── Podcasts
└── Genre
├── Pop
└── Jazz
Before running the script, make sure you have:
-
PowerShell (Windows 10 or later recommended)
-
Set your Execution Policy to
RemoteSigned
to allow running scripts. You can set this by running the following command in PowerShell (as Administrator):Set-ExecutionPolicy RemoteSigned
We welcome contributions from the community! If you'd like to contribute to this project, please follow these steps:
-
Fork the repository to your own GitHub account.
-
Clone your forked repository to your local machine:
git clone https://github.com/your-username/repository-name.git
-
Create a new branch for your changes:
git checkout -b your-feature-branch
-
Make your changes to the script and commit them:
git commit -am 'Add new feature or fix issue'
-
Push your changes to your forked repository:
git push origin your-feature-branch
-
Open a pull request for review:
This project is licensed under the MIT License - see the LICENSE file for details.
- PowerShell for providing an easy and powerful scripting environment on Windows systems.
- GitHub for hosting this repository and enabling open-source contributions.