일주일 업무일지를 생성하는 파워쉘 스크립트

2024. 10. 31. 16:33·Windows

회사에서 일일업무, 주간업무일지를 작성하는데

물론 양식이 있지만 매번 들어가서 생성을 하고 작성을하는게 생각보다 귀찮더라

그래서 txt파일로 미리 일주일치를 생성해 

조금이나마 귀찮음을 덜 수 있게 파워쉘 스크립트를 작성했다


$sWORK_PATH = "파일을 생성할 경로";

$sYear = ((Get-Date).Year).ToString().Substring(2,2);    # 년도 변수
$sMonth = (Get-Date).Month;  # 월 변수

$sToday = Get-Date;  # 오늘 날짜 변수
$sFirstDayOfMonth = Get-Date -Year $sToday.Year -Month $sToday.Month -Day 1; # 이번달의 첫날 변수
$iWeekNumber = [math]::Ceiling(($sToday.Day + ($sFirstDayOfMonth.DayOfWeek - 1)) / 7); # 이번달의 몇번째 주인지 변수
$sDirectoryName = "${sYear}${sMonth}_${iWeekNumber}주차"; # 디렉터리 이름 변수

. "C:\notepad\roono\TextValue.ps1"; # 파일 내용 변수  

# 파일 생성 함수
function Make-File {    
    $result = 0;
    $sStartDate = Get-Date -Format "MMdd"; # 시작 날짜 변수

    try {
        $bDirectoryName = Test-Path -Path "$sWORK_PATH\$sDirectoryName"; # 디렉터리 존재 여부 확인

        if ( $bDirectoryName -eq $false ) {  # 디렉터리가 존재하지 않을 경우
            New-Item -Path "$sWORK_PATH\$sDirectoryName" -ItemType Directory; # 디렉터리 생성
        } else { # 디렉터리가 이미 존재할 경우
            Write-Host "이미 디렉터리가 존재합니다. 해당 단계를 건너뜁니다.";
        } # if
        for ( $i = 0; $i -lt 8; $i++ ) {
            $sNowDayName = (Get-Date).AddDays($i).DayOfWeek; # 월요일과 금요일 변수를 저장하기 위한 요일변수
            $sDate = (Get-Date).AddDays($i).ToString("MMdd"); # 월-금까지 날짜를 저장하기 위한 변수
            $bDirectoryName = Test-Path "${sWORK_PATH}\${sDirectoryName}"; # 디렉터리 존재 여부 확인
            $sFileName = "\${sDate}.txt"; # 파일 이름 변수
            $bFileName = Test-Path "${sWORK_PATH}\${sDirectoryName}\${sDate}.txt"; # 파일 존재 여부 확인

            if ( $bFileName -eq $false ) { # 파일이 존재하지 않을 경우
                New-Item -Path "${sWORK_PATH}\${sDirectoryName}\${sDate}.txt" -ItemType File -Value $sFileValue; # 파일 생성
            } else { # 파일이 이미 존재할 경우
                Write-Host "이미 파일이 존재합니다. 해당 단계를 건너뜁니다.";
            } # if
            if ( $sNowDayName -eq "Friday" ) { # 금요일일 경우
                $sEndDate = $sDate; # 금요일 날짜 저장
                break; # 반복문 종료
            } # if
        }

        $bStartToEnd = Test-Path -Path "${sWORK_PATH}\${sDirectoryName}\${sStartDate}_${sEndDate}.txt"; # 월요일부터 금요일까지의 파일 존재 여부 확인

        if ( $bStartToEnd -eq $false ) { # 파일이 존재하지 않을 경우
            New-Item -Path "${sWORK_PATH}\${sDirectoryName}\${sStartDate}_${sEndDate}.txt" -ItemType File -Value $sWeekValue; # 파일 생성
        } else { # 파일이 이미 존재할 경우
            Write-Host "이미 파일이 존재합니다. 해당 단계를 건너뜁니다.";
        } # if
        $result = 1;
        $obj = [PSCustomObject]@{
            "Success" = $false;
            "ScriptLineNumber" = $_.InvocationInfo.ScriptLineNumber;
            "Message" = $_.Exception.Message;
        };
        $obj;
    } catch {
        $result = 0;
    }
    if ( $result -ge 1 ) {
        Write-Host "Success";
    } else {
        Write-Host "Failed";
    }
}


Make-File;
# pause;

파일에 대한 변수 주석 부분인

. "C:\iTEASY\notepad\roono\TextValue.ps1"; # 파일 내용 변수  

이 부분에 대한 파일은 이렇다

# 요일별 업무일지
$sFileValue = "  
목표 (팀별 분배 목표)
1. 진행 중 프로젝트
    #

2. 서비스 기술지원 및 유지보수
    #

3. 기타
    # 클라우드

============================

현재 진행상황 (현재 진행했던 업무)
1. 진행 중 프로젝트
    #

2. 서비스 기술지원 및 유지보수
    #

3. 기타
    # 클라우드

============================

추후 진행상황 (다음으로 진행할 업무)
1. 진행 중 프로젝트
    #

2. 서비스 기술지원 및 유지보수
    #

3. 기타
    # 클라우드
";

# 주의 시작일자부터 금요일까지의 업무일지
$sWeekValue = "  
목표
1. 진행 중 프로젝트
    #
   
2. 서비스 기술지원 및 유지보수
    #

3. 기타
    #

============================

목표 진행상황
1. 진행 중 프로젝트
    #
   
2. 서비스 기술지원 및 유지보수
    #

3. 기타
    #

============================

차주 목표 (다음주 목표)
1. 진행 중 프로젝트
    #
   
2. 서비스 기술지원 및 유지보수
    #

3. 기타
    #


";    

이렇게 하고 실행을 하면

이렇게 일주일 단위로 파일 생성 가능!

저작자표시 비영리

'Windows' 카테고리의 다른 글

ODBC를 통한 Mariadb 연결 스크립트  (0) 2024.11.13
파워쉘 원격접속  (0) 2024.10.23
Hyper-v VM 생성하기 2탄 (Powershell)  (0) 2024.09.25
Hyper-v VM 생성하기 1탄 (GUI)  (0) 2024.09.24
'Windows' 카테고리의 다른 글
  • ODBC를 통한 Mariadb 연결 스크립트
  • 파워쉘 원격접속
  • Hyper-v VM 생성하기 2탄 (Powershell)
  • Hyper-v VM 생성하기 1탄 (GUI)
ssnong
ssnong
캠핑 맛집 여행 윈도우 리눅스 PHP DB 등 기록 공간입니다
  • ssnong
    호슐랭
    ssnong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • Linux (21)
        • ubuntu (4)
        • Rocky 8.10 (16)
      • Windows (5)
      • git (3)
      • Lang (3)
        • javascript (3)
        • PHP (0)
      • Database (3)
        • MySQL8.0 (2)
        • MariaDB (1)
        • PostgreSQL(17.2) (0)
      • AWS (1)
      • ERROR! (4)
  • 링크

    • 일상은 여기서!
  • 공지사항

  • 인기 글

  • 태그

    hyper-v vm 생성
    Linux
    nginx php 소켓통신
    linux nftables
    centos nftables
    git pull
    리눅스 nftables
    rocky nftables
    ssh 접속
    리눅스 nft
    linux postgresql설치
    rocky 8 postgresql 설치
    rocky postgresql설치
    postgresql.conf 설정
    리눅스
    git push
    pg_hba.conf 설정
    rocky
    linux nft
    nftables
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ssnong
일주일 업무일지를 생성하는 파워쉘 스크립트
상단으로

티스토리툴바