소프트웨어 사용자 설정 백업 복원 v5.0 - 수정 사용기
2022.07.31 17:59
이전 첨부 파일에서 2,3행을 순서를 바꿨습니다.
powershell이 실행될때 ini 파일의 마지막 줄의 이름으로 폴더가 생성되는 문제가 있습니다. 이유는 모르겠습니다.
일단은 ini 파일 끝줄에 backup 이라고 입력해두면 문제는 없는 것 같습니다.
Backup2.cmd , 샘플 ini - Settings.ini
안녕하세요? 주말이라 시간 여유가 있어서 제? 방식으로 수정한 사용기입니다.
관련 링크 - https://windowsforum.kr/free/18285901 - https://windowsforum.kr/review/18298143
아침에 게시물 보다 슈마님이 올려주신 댓글(지금 못찾겠습니다.ㅜㅜ) 자료를 기준으로 수정하였습니다.
- 혹시 남의 것 분해하는 것 아니냐? 라는 오해는 없었으면 합니다.
- 전체 흐름을 자세히 살펴 보지는 못하였습니다. 슈마님/모자님이 마무리해주시면 좋겠습니다.^^
Backup3.cmd 메모장 등으로 열어 두시고 보시면 편하실 것 같습니다. Settings.ini
- Settings.ini 파일을 가능한 ansi 인코딩으로 저장합니다.
- 전체적으로 색상 안시 코드 정리함
- 수정된 스크립트에 맞게 도움말을 수정해야 하는데 살펴보지 못했습니다.
2 for /f "delims=" %%a in ('powershell get-date -format "{yyyyMMdd}"') do set ds=%%a
- %date% 사용시 사용자별 시스템의 '간단한 날짜' 서식 설정에 따라 예상과 다른 결과가 나올 수 있어서 파워쉘 이용
- %date% 이용시 set ds=%date:-=% 와 set ds=%date:~0,4%%date:~5,2%%date:~8,2% 는 같은 결과 나올듯 함
3 for /f "tokens=1 delims='" %%a in ('findstr /b /l /v ^' Settings.ini') do call :TrimRight "%%a"
- Settings.ini 파일에서 '로 시작하는 줄을 제외하고 읽고, :TrimRight 서브루틴으로 줄 뒷쪽 공백이나 탭 제거
8 if %sn% gtr 0 for /f "skip=%sn% tokens=*" %%a in ('dir /ad/b/o-d backup') do rd /s/q "backup\%%a"
9 if %afc% gtr 0 for /f "skip=%afc% tokens=*" %%a in ('dir /b/o-d backup\backups-*') do del "backup\%%a"
- 기존 rd,ad 변수 없이 sn,afc 변수만으로 가능, sn,afc 변수는 알맞은 이름으로 바꿔도 좋을 듯 합니다. keepdir, keepzip 등
- 폴더/파일 이름과 무관하게 최근 만들어진 지정된 갯수만 남김
24 echo.& choice /c brxha /n >nul
- if ERRORLEVEL 1 goto backup 형태로 이용하려면 goto 문을 ERRORLEVEL 역순으로 정렬
- if %errorlevel%==1 goto backup 형태로 이용하면 순서 상관 없을 듯 함
96 if exist "backup\%ds%" (call :NewDir "backup\%ds%") else (md "backup\%ds%" && set "todir=backup\%ds%")
- 백업 폴더에 오늘 날짜의 폴더가 있으면 "오늘날짜-1" 형태로 일련번호를 붙여서 폴더 생성, 같은날 다수의 백업 가능
- ini 파일에 sn=4 로 설정되어 있으면 메인화면으로 이동시 최근 4개 폴더 제외하고 자동삭제하므로
- 예를 들어, "20220731-4" 다음에는 "20220731" 이름의 폴더 생성됨
109 for /f %%a in ('dir /ad/b/o-d backup') do set "fd=%%a" && goto next
- 최근 백업 폴더 한개 구하고 바로 다음으로 진행
124 for /f "tokens=1-4 delims==" %%a in ('set fb') do (for %%f in ("%%c") do set "src=%%~nxf"
125 if "%%d"=="1" (if exist "backup\%fd%\%src%" copy /-y "backup\%fd%\%%b\!src!" "%%c"))
- ini 파일에 지정된 파일 이름을 선택한 백업 폴더에서 원본 위치로 복사, 겹쳐쓰기 확인 메세지 출력
138 for /f %%a in ('dir /ad/b/od backup') do (set /a i+=1 & echo !i! - %%a& Set no!i!_=%%a)
- 백업 폴더내 일자별 폴더만 시간순으로 출력
147 for /f "tokens=1-4 delims==" %%a in ('set fb') do (for %%f in ("%%c") do set "src=%%~nxf"
148 if "%%d"=="1" (if exist "backup\%fd%\%src%" copy /-y "backup\%fd%\%%b\!src!" "%%c"))
- 백업 폴더에서 ini에서 지정한 각 파일의 원위치로 복사, 겹쳐쓰기 확인 메세지 출력
155 for /f "delims=" %%a in ('powershell get-date -format "{yy-MM-dd_HHmmss}"') do set tail=%%a
- 압축 파일 생성할 이름 지정, 매 시각별로 만들어져서 겹쳐쓰지 않음.
- 참고로 메인화면으로 이동시 ini 에서 지정한 afc=4 갯수 남기고 삭제됩니다.
168 powershell "Get-ChildItem -Path '%source%' -Directory | Compress-Archive -DestinationPath '%destin%'"
- 백업 폴더 내 일자별 폴더만 압축합니다. backup 폴더내 zip 파일은 제외됨
188 if exist "%~1-%_i%" (goto NewDir) else set "todir=%~1-%_i%"
- NewDir 서브루틴 이름을 goto 라벨로도 사용함.
아래는 settings.ini 예제입니다.
'WAF :: We are familly
'HISTORY
'- 5.0 : 압축저장의 선택을 늘림 반영 7zip, 반디집, Winrar, PowerShell
' 각 압축화면 별도구성 - 앱별 지정 형식의 차이
'Options
lastmodify=20220730 ' 사용자 관리중 최종 수정 일자 ( 메모장에서는 F5 )
ver=5.0 '사용자 버젼 관리 빌드 번호
sn=4 '최근 폴더 삭제 범위 [예: sn=2 최근 폴더 2개 남기고 삭제, sn=0 백업 폴더 지우지 않고 모두 남김]
afc=4 '최근 압축파일 삭제 범위 [예: afc=3 최근 폴더 3개 남기고 삭제, afc=0 압축파일 지우지 않고 모두 남김 ]
'이하는 사용자 백업 환경 설정의 내용입니다. 규칙에 맞게 확장 가능합니다.
' [백업파일 번호]=[백업폴더 이름]=[백업파일 경로]=[백업 비활성화0, 백업 활성화1] 으로 작성하시면 됨니다.
fb1=Chrome=c:\PortableApps\CentBrowser\User Data\Default\Bookmarks=1
fb2=Chrome=c:\PortableApps\CentBrowser\User Data\Default\History=1
fb3=Chrome=c:\PortableApps\CentBrowser\User Data\Default\Shortcuts=1
fb4=Totalcmd=c:\PortableApps\Totalcmd\wincmd.ini=1
fb5=Totalcmd=c:\PortableApps\Totalcmd\DEFAULT.BAR=1
fb6=Totalcmd=c:\PortableApps\Totalcmd\default.br2=1
fb7=Slimjet=%LOCALAPPDATA%\Slimjet\User Data\Default\Bookmarks=1
fb8=Edge=%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Bookmarks=0
fb9=NaverWhale=%LOCALAPPDATA%\Naver\Naver Whale\User Data\Default\Bookmarks=0
fb10=Chrome=%LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks=0
fb11=FileZilla=%userprofile%\AppData\Roaming\FileZilla=0
fb12=FileZilla=%AppData%\FileZilla=0
fb13=atom=%AppData%\atom=0
fb14=EditPlus=%AppData%\EditPlus=0
fb15=qBittorrent=%AppData%\qBittorrent=0
fb16=WinSCP=%ProgramFiles(x86)%\WinSCP\WinSCP.ini=0
fb17=DESKTOP=%USERPROFILE%\OneDrive\바탕 화면=0
fb18=DESKTOP=%USERPROFILE%\Desktop=0
backup
변수의 스코프를 살펴봐야하는데 손목이 아파서 마쳐야겠습니다. ㅠㅠ
배치 스크립트 종료 후 재 실행하면 변수가 섞이는 것을 막을 수 있습니다마...
테스트가 충분치 않습니다만 검토만 한 것이라서 슈마님, 모자님께 넘기고 이만... -꾸~벅-
댓글 [10]
-
cungice 2022.07.31 18:54
-
빨강모자 2022.07.31 18:59 많은 부분을 또 지후빠님의 소스로부터 학습중입니다.
너른 마음으로 이런 가르침에 감사한 마음을 올림니다...
편한 시간으로 자리하세요~~~~~ 꾸벅~~
-
붉바리 2022.07.31 20:22
감사합니다.
-
ehdwk 2022.08.01 02:29
수고하셨습니다. -
상발이 2022.08.01 06:30
수고하셨습니다.
-
馬井理 2022.08.01 07:32
수고하셨습니다
-
슈머슈마 2022.08.01 09:43
저도 학습중입니다. 재가 만든건 역시 초라해 보이네요. -_-
:TrimRight
set tmp=%~1
:loop
if "%tmp:~-1%"==" " set tmp=%tmp:~0,-1%&goto :loop
if "%tmp:~-1%"==" " set tmp=%tmp:~0,-1%&goto :loop
set %tmp%
goto:eof
:NewDir
set /a _i+=1
if exist "%~1-%_i%" (goto NewDir) else set "todir=%~1-%_i%"
goto:eof
이부분이 고차원적인 코드 부분인데 -_- 이해할려고 하는데 머리아픔 .
-
지후빠 2022.08.01 12:03
서브루틴을 각각 외부 배치 파일이라고 생각하시면 좀 더 쉽게 느껴지실 것 같습니다. ^^;
-
슈머슈마 2022.08.01 20:01
set /a _i+=1 이것을 서부루틴으로 빼서 적용한다는걸 쉽게 이해 하라구요? -_- 이건 아닌듯
콘솔 명령에 도가 튼사람이나 이런걸 하지 일반적으로 어떻게 이걸 이해합니까? -_-
일반적인 인수는 명령 창이나 실행창에 포함시켜 같이 실행하는 용도 인줄만 알았지
이렇게 쓰는사람이 몇이나 될까요? -_- 와 ~ 이건 뭐
이거 보자마자 이게 뭐대? -_- 인수를 이렇게 쓸수도 있구나? 그런데 인수와 변수를 복합적으로 변형시켜
실행명령으로 같이쓰네? 와~ 이건 뭐 -_- 죽으라는 소리죠 ㅠㅠ
-
붉바리 2022.08.03 20:28
감사합니다.
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 사용기/설치기 이용안내 | gooddew | - | - | - |
11027 | 소프트웨어| 윈8.1 모든 버전 시디키 입력하기............ [3] | 구디 | 61066 | 1 | 09-08 |
11026 | 유무선 공유기 설치 & 사용기?? [3] | 콩나물국 | 59925 | 0 | 02-24 |
11025 | MS 오피스 2007 설치후.. [4] |
|
44921 | 0 | 11-28 |
11024 | 윈 도 우| WORLD`S BEST PE - FINAL ★★★메뉴얼★★★ [1180] | 사랑과평화 | 40790 | 567 | 05-11 |
11023 | 인터넷 끊김 증상... 임시 방법...(2) [34] | 김용환 | 36687 | 0 | 02-13 |
11022 | 윈 도 우| Windows 10 Pro 영구 인증하기 [18] |
|
35318 | 5 | 08-02 |
11021 | 시게이트 하드디스크 (피씨디렉트) A/S 후기 [19] | 최순곤 | 28347 | 0 | 02-24 |
11020 | MSDN windows7 86-64Bit ultimate Dell OEM 설치후 자동리... [31] | 최재수 | 28332 | 0 | 09-19 |
11019 | GHOST XP sp3 순정판 [17] |
|
28277 | 0 | 04-30 |
11018 | 은나노님의 7diet2 버전 버그 리포트 [4] |
|
26878 | 0 | 06-02 |
11017 | 윈 도 우| 윈8 합법적인키로 윈8.1 ISO 다운로드 방법입니다. [16] | 사랑해요1 | 26196 | 3 | 10-19 |
11016 | 윈7 허접 설치 사용기 [10] |
|
25689 | 0 | 01-14 |
11015 | 7068 KR 설치했습니다. [3] | 김용환 | 25586 | 0 | 04-01 |
11014 | 소프트웨어| 어도비 콜렉션 cs5.5 인증 해결~!!! [13] |
|
24898 | 0 | 08-02 |
11013 | 소프트웨어| 자료실에올라온 윈도우7 새로운 설치방법 해본결과....대박 [15] | 슈퍼맨 | 24722 | 0 | 09-12 |
11012 | USB 16기가 지름신.. [21] |
|
24472 | 0 | 12-15 |
11011 | 대박이군요. Differencing VHD 기능 [21] | BigShit | 24185 | 0 | 11-22 |
11010 | 소프트웨어| Win8Mpe L ◆◇ 28일 AM 8:00 특별한 문제가 없으면 마지막... [255] | tara | 23681 | 80 | 04-25 |
11009 | 윈도우7 멈춤 현상 전 이게 문제였네요~ 해결 봤습니다^^; [14] |
|
23512 | 0 | 10-31 |
수고 많으셨습니다. 감사합니다.