회사에서 일일업무, 주간업무일지를 작성하는데
물론 양식이 있지만 매번 들어가서 생성을 하고 작성을하는게 생각보다 귀찮더라
그래서 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 |