기 타 배치파일에서 날짜 찾아서 백업을 하려는데..
2022.08.03 12:44
로보카피에서 7일안에 해당되는 자료를 백업하려고 하는데
이상하게 아래와 같이 하면 rarDate가
9일 이상일때는 백업이 잘 되었는데
9일 이하일때는 잘안되네요
오늘 다시 보니
1224
가 나오는데 뭐가 잘못된거죠..
@echo off
title 타이틀
::echo %date%
set yyyy=%date:~0,4%
::echo %yyyy%
set mm=%date:~5,2%
::echo %mm%
set dd=%date:~8,2%
::echo %dd%
if %dd%==08 (
set dd=8 ) else (
if %dd%==09 (
set dd=9 ) )
if %mm%==08 (
set mm=8 ) else (
if %mm%==09 (
set mm=9 ) )
set /A dd=%dd% - 7
set /A mm=%mm% + 0
if /I %dd% GTR 0 goto DONE
set /A mm=%mm% - 1
if /I %mm% GTR 0 goto ADJUSTDAY
set /A mm=12
set /A yyyy=%yyyy% - 1
:ADJUSTDAY
if %mm%==1 goto SET31
if %mm%==2 goto LEAPCHK
if %mm%==3 goto SET31
if %mm%==4 goto SET30
if %mm%==5 goto SET31
if %mm%==6 goto SET30
if %mm%==7 goto SET31
if %mm%==8 goto SET31
if %mm%==9 goto SET30
if %mm%==10 goto SET31
if %mm%==11 goto SET30
if %mm%==12 goto SET31
goto ERROR
:SET31
set /A dd=31 + %dd%
goto DONE
:SET30
set /A dd=30 + %dd%
goto DONE
:LEAPCHK
set /A tt=%yyyy% %% 4
if not %tt%==0 goto SET28
set /A tt=%yyyy% %% 100
if not %tt%==0 goto SET29
set /A tt=%yyyy% %% 400
if %tt%==0 goto SET29
:SET28
set /A dd=28 + %dd%
goto DONE
:SET29
set /A dd=29 + %dd%
:DONE
if /i %dd% LSS 10 set dd=0%dd%
if /I %mm% LSS 10 set mm=0%mm%
set rarDate=%yy%%mm%%dd%
echo %rarDate%
댓글 [8]
-
내꼬 2022.08.03 13:43 -
열심히하자 2022.08.03 13:54
감사드립니다.
되었다 안되었다 해서 헷갈렸네요..
-
지후빠 2022.08.03 15:32
cmd에서 파워쉘 이용하여 일주일 전 일자를 구하면 다음과 같습니다.
for /f %A in ('powershell ^(Get-Date^).AddDays^(-7^).ToString^(^'yyyyMMdd^'^)') do echo %A
for /f %A in ( 'powershell -c "(Get-Date).AddDays(-7).ToString(\"yyyyMMdd\")"') do echo %A
-
열심히하자 2022.08.03 18:32
감사드립니다.
내일 다시 확인해 보겠습니다.^^
그런데 로보카피말고 보면 그냥 20211224이 나옵니다.
이 오류는 어떻게 잡을수 있을까요..
-
지후빠 2022.08.03 23:30
if 문에서 /i 옵션은 문자를 비교할 때 사용합니다. 숫자 비교이므로 빼셔야 할 것 같습니다.
-
메리아 2022.08.03 16:11 -
-
열심히하자 2022.08.03 18:33
감사드립니다.
내일 다시 확인해 보겠습니다.^^
그런데 로보카피말고 보면 그냥 20211224이 나옵니다.
이 오류는 어떻게 잡을수 있을까요..
-
지후빠 2022.08.03 23:21
본문은 참고하여 제 스타일로 수정해봤습니다. ^^ date-7_test.cmd
- 윤달 참고; https://blog.naver.com/hanlaonline/222004576341
@echo off & title 타이틀 & setlocal enabledelayedexpansion
set "yyyy=%date:~0,4%"
if %date:~5,1%==0 (set mm=%date:~6,1%) else (set mm=%date:~5,2%)
if %date:~8,1%==0 (set dd=%date:~9,1%) else (set dd=%date:~8,2%)
set /a dd-=7
if %dd% gtr 0 (goto DONE) else set /a mm-=1
if %mm% equ 0 (set /a mm=12 & set /a yyyy-=1)
if %mm% equ 2 (set /a dd+=28
set /a _y=yyyy%%4 & if !_y!==0 set /a dd+=1
set /a _y=yyyy%%100 & if !_y!==0 set /a dd-=1
set /a _y=yyyy%%400 & if !_y!==0 set /a dd+=1
) else (set "m31= 1 3 5 7 8 10 12 "
if not "!m31: %mm% =!"=="!m31!" (set /a dd+=31) else (set /a dd+=30)
)
:DONE
set "mm=0%mm%" & set "dd=0%dd%" & set rarDate=%yyyy%!mm:~-2!!dd:~-2!
echo %rarDate%
endlocal & pause & exit/b
번호 | 제목 | 글쓴이 | 조회 | 등록일 |
---|---|---|---|---|
[공지] | 질문과 답변 게시판 이용간 유의사항 | gooddew | - | - |
94275 | 하드웨어| 스크롤캡춰 사용하시는분?? [6] | 한스 | 560 | 08-03 |
94274 | 윈 도 우| 윈도우11에서의 프린터 자가증식??? [6] | 뽀로로 | 679 | 08-03 |
94273 | 기 타| 압축백업에서 7일안에 해당되는 자료를 백업하려고 하는데 [7] | 열심히하자 | 345 | 08-03 |
94272 | 윈 도 우| 현재 윈도우11 22622.450 사용중입니다만 [2] | QOR | 499 | 08-03 |
94271 | 윈 도 우| 모든 탐색차에 주르르르 마침표가 날라다닙니다. [3] | sky9 | 485 | 08-03 |
94270 | 윈 도 우| 윈11 22H2 프리뷰 베타 [1] | 해동이 | 447 | 08-03 |
94269 | 소프트웨어| 삼성SSD 마이그레이션 실패이유가 궁금합니다 [1] | 프리티맨 | 578 | 08-03 |
» | 기 타| 배치파일에서 날짜 찾아서 백업을 하려는데.. [8] | 열심히하자 | 294 | 08-03 |
94267 | 윈 도 우| 정품 인증 [4] | 음악,영화 | 1278 | 08-03 |
94266 | 윈 도 우| 파워쉘 문의입니다. [11] | 베루두 | 365 | 08-03 |
94265 | 윈 도 우| 하드디스크 raw변경됨, checkdsk 문의 [3] | 준욱준 | 733 | 08-03 |
94264 | 소프트웨어| 화면 캡처 프로그램 중에서요.. [13] | 테츠로 | 900 | 08-02 |
94263 | 하드웨어| 프린터 출력물로 알수 있는 문제는 뭘까요? [1] | 한스 | 388 | 08-02 |
94262 | 윈 도 우| 관리자 권한 문의 드립니다. [2] | 엇갈린길 | 275 | 08-02 |
94261 | 서버 / IT| 시놀로지 NAS 보안어드바이저에서 경고가 나오는데 어떻게 ... [4] | 윙도10 | 290 | 08-02 |
94260 | 윈 도 우| 인텔 12세대 데스크탑 윈도우 설치 [2] | GolRin | 851 | 08-02 |
94259 | 소프트웨어| 인텔 그래픽드라이버 31.0.101.2111 설치시 ERROR [2] | 왕나누미 | 453 | 08-02 |
94258 | 윈 도 우| 윈10 검색박스에 배경 그림 어떻게 띄우나요 [2] | 솔트 | 268 | 08-02 |
94257 | 기 타| pe wim 파일 기본 아이콘 테마 및 커서 변경 가능한가요~? [1] | 지룡자 | 247 | 08-02 |
94256 | 하드웨어| 메인보드 전력제한해제와 K 없는 CPU [4] | billy | 645 | 08-02 |
robocopy 에는 maxage: 옵션이 있습니다
maxage:9 라고 하면 지난 9일동안 생성된 파일만 복사 하게 됩니다.
확장자 및 날짜를 기반으로 파일을 일괄 복사 또는 이동하는 방법. - HowThere
참고해 보세요.