기 타 WimLib 백업 복원 - Cmd, GUI 반반이 되어 버렸네요..
2021.09.29 14:29
사공이 많으면 배가 산으로 간다는 속담이 있죠...
사공이 많지 않아도..산을 넘어서..하늘을 날아다니는 경우도 있네요.
시작은... DarknessAngel님 작품에 있는 WimLib 백업 복원용인 Recovery.cmd에서 드라이브 목록을 보여주기 위해서 아래 명령어가 사용이 되고
있습니다
wmic logicaldisk get name,volumename
보통 PE에는 wmic 관련 파일들이 있어서 DarknessAngel님 작품에 있는 Recovery.cmd를 가져다 활용을 하실수가 있지만 저용량 PE의 경우..
관련 파일이 없어서 드라이브 목록을 보여주지 못합니다...드라이브 목록을 보여줄 대체품이 필요하죠
지인분께서 드라이브 목록을 보여주는것이 필요하시거 말씀을 하셔서 오래전에 이화우님께서 소개하여 주셨던것이 있어서 이것을 수정해서 활용을
하는것으로 했습니다..
여기까지는 간단해서 아주 좋았습니다
프로그램마다 그 나름대로의 특성이 있어서..cmd의 경우...수정이 쉽고..cmd에서 키보드로 입력하는 손맛이 있는 프로그램이죠..
새로운것을 배운다는것은 나름대로 고생은 되지만 배우는 재미가 있습니다...GUI를 사용하시던 분께서 cmd를 수정해서 본인만의 방식으로 만들어
활용을 하시려고 하시게 되면서 어려운 부분들이 생기게 되고 결국 cmd로 되어야 할부분이 점점 GUI로 처리가 되면서..겉보기에는 cmd 백업,복원이
아닌 조금 엉뚱한 모습이 되어 버렸네요
DarknessAngel님의 Recovery.cmd 가 시작었습니다만..제 생각이 많이 들어가게 되면서..마지막에는 제가 사용하는 방식이 되어 버렸습니다.
Cmd에서는 Win.tag, Backup폴더 체크를 하고 WimLib 백업,복원을 담당하고 Win.tag, Backup 폴더 만들기와 포멧 메세지등은 GUI에서 담당하는
것으로 하게 되었습니다..
처음에 필요로 하였던 드라이브 목록을 보여주는 프로그램을 그냥 사라져버렸네요
1. 윈도우에서 백업,복원을 할수가 있는것을 기본 백업프로그램과 같습니다...아래 프로그램은 백업,복원 기능은 없고..pe를 재부팅하여 주는 기능만
있습니다
2. pe에 프로그램이 포함되는 것을 원하셔서 boot.wim안에 cmd등 필요한 파일이 있습니다..이런 경우..백업파일이 저장되는 Backup폴더를 검색해야
하는 기능이 추가되어서 좀더 복잡해 지게 됩니다. 포함되어 있는 DiskInfoMsg.exe 가 모든 GUI를 담당하고 있습니다
3. Win.tag Backup 폴더가 각각 한개인 경우가 정상입니다
4. Win.tag나 Backup폴더가 1개씩 정상인 경우 아래처럼 정상적인 메세지가 나오게 됩니다..이 테그들이 없는 경우 DarknessAngel님 작품에서는
cmd에서 드라이브 목록을 보여주고 선택을 해서 만들어 주고 있습니다
5. 사용기를 위해서 일반 PE로 부팅을 한 상태입니다..wmic 명령어 대신에 아래처럼 드라이브 목록을 보여주는것이 필요했었습니다
아니..용량 부분에서 MB로 표시되는것이 있네요..보완을 해야 할것 같습니다... 처음에는 이것이 필요했습니다만 결국 사용을 하지 못하였습니다
6. 파티션세이빙 cmdpe에서 VB6으로 만든 프로그램에서 Win.tag와 Backup폴더를 만들때 사용하던 방식을 가져와서 활용을 해보았습니다
cmd에서 체크시 Win.tag 파일이 없거나 2개 이상인 경우 아래 GUI가 나옵니다
7. 윈도우 파티션이나 백업파티션은 X나 CD롬은 될수가 없어서 아래처럼 하드만 보여주고 있습니다..선택하고 만들기를 하면 됩니다.
만들기후 cmd에서 처음부터 다시 체크를 하게 됩니다
8. Win.tag가 만들어 지고 처음부터 체크후 이상이 없어서 백업 메세지가 나왔습니다
9. 이런 경우는 거의 없지만 실수로 Win.tag가 2개인 경우도 가정을 해야죠...이렇게 2개 이상인 경우에도 아래 창이 나옵니다
윈도우 파티션으로 선택한것 이외의 Win.tag는 모두 삭제합니다
10. 필요없는 Win.tag는 삭제하고 다시 처음부터 진행을 해서 백업메세지가 보입니다..
11. Backup 폴더가 없으면..Backup폴더를 만드는 창이 나오게 됩니다..cmd에서 진행하는것보다는..GUI가 편해서..결국 이런 식으로 되어버렸습니다
12. Backup 폴더가 2개 이상인 경우에는..아래처럼 메세지를 보여주고 프로그램을 종료게 됩니다..Backup폴더에 뭐가 있는지 알수가 없어서..
cmdpe에서 보다는 일반 PE로 진입을 해서 탐색기에서 확인하는것이 좋죠..
13. PE에서 Win.tag와 Backup폴더를 모두 만들고..재부팅을 하였습니다..백업파일이 없어서...백업용 PE로 부팅을 하게 됩니다
14. 이제 백업 진행해야죠..
15. 메세지가 사라지면서 보이지 않던 cmd창이 보이면서..백업이 진행이 됩니다..
16. 복원시 포멧은 DiskInfoMsg.exe에서 담당을 합니다..볼륨명에 공백이 있는 경우 원래 사용하던 볼륨명을 그대로 사용하기 위해서 입니다
17. WinBackup.cmd 는 숨김실행이 되고 있습니다..그래서 겉보기에는 GUI 프로그램 처럼 보이기는 합니다
18. 숨김이었던 cmd창이 보이면서 복원이 시작되었습니다..포멧은 DiskInfoMsg.exe에서 하였습니다
19. cmd의 좋은 점이죠..수정이 간편합니다..재부팅을 원하는 경우 간단히 수정하면 됩니다
20. 볼륨명이 기존것으로 잘 설정이 되었습니다
21. 마무리
cmd로 간단히 백업 복원 프로그램을 만들게 되어도..결국은 본인의 지식과 경험, 취향에 따라서..다른 모습이 될것입니다
처음 시작은..DarknessAngel님 작품에 있는 Recovery.cmd에 드라이브 목록을 보여주는것을 추가하는것 이었는데..결국 하나하나 수정을 하고
추가를 하게 되며서..제 스타일 대로 되어버렸네요..
드라이브 목록을 보여주는 프로그램이 필요하셨던분도..이것저것 좀더 편하게 GUI로 했으면 하셔서..처음에 시작시의 cmd 모습은 백업,복원때나
볼수 있게 되었습니다..
cmd 공부차원 시작하신일인데...좀 이상한 방향이로 진행이 되기는 하였습니다
cmd로만 되어 있는것은 나름대로 손맛이 있는데.. 손맛대신에 마우스 맛만 보게 되었습니다
가을비고 조용히 오고 있네요...
마음이 편안하신 하루가 되시길 바랍니다
댓글 [14]
-
머나먼길.. 2021.09.29 14:59
-
샤 2021.09.29 15:06
수고하셨습니다.
-
상발이 2021.09.29 15:42
수고하셨습니다.
-
ehdwk 2021.09.29 17:33
수고하셨습니다. -
타락천사둘리 2021.09.29 17:35
수고하셨습니다. 자료나눔 요청드려 봅니다.
-
DarknessAngel 2021.09.29 19:00
오늘 제가 수정한 버전이랑 비슷한 정보 보여주네요
wmic말고 뭘로 구현하신건지?
하단이 이번 버전의 구현 소스입니다
--------------------------------------
:DiskStatus
echo Letter / Label / Total Space / Used Space / Free Space / Filesystem
set "GB=1073741824"
for /f "skip=1 delims=" %%i in ('wmic logicaldisk get DeviceID^,FreeSpace^,Size^,VolumeName^,Filesystem') do (
for /f "tokens=1-5" %%j in ("%%i") do call :Diskoutput %%j %%k %%l %%m %%n
)
:Diskoutput
if "%4"=="" (
goto :eof
)
for /f "tokens=1-6" %%i in (
'mshta vbscript:Execute("CreateObject(""Scripting.FileSystemObject"").GetStandardStream(1).Write(FormatNumber(%4/%GB%, 2) & "" "" & FormatNumber((%4-%3)/%GB%, 2) & "" "" & FormatNumber(%3/%GB%, 2) & "" "" & Round((%4-%2)*50/%4)):Close"^)'
) do (
set "size=%%i"
set "used=%%j"
set "free=%%k"
set /a "nUsed=%%l, nFree=50-%%l"
)
echo %1 / %5 / %size:~-10% GB / %used:~-10% GB / %free:~-10% GB / %2------------------------------------------------------------------
wmic logicaldisk get DeviceID,FreeSpace,Size,VolumeName,Filesystem
으로 획득한 정보에서 FreeSpace랑 Size의 바이트단위로 출력되는 값을 vbs를 통해서 GBi로 변환후 출력해줍니다
-
왕초보 2021.09.29 19:33
오토잇으로 되어 있습니다..사용기에 있는것은 CD 정보가 보여서 좀더 정리를 해야합니다
1. 업데이트된 WimLib x86 Recovery v1.01.iso 를 다운 받아서 가상에서 실행한 모습입니다...볼륨명 외에도 좀더 다양한 정보가 있어서..
엉뚱한것 선택하는 실수를 줄일수 있을것 같습니다
업데이트 버전 감사합니다...
-
DarknessAngel 2021.09.29 21:36
처음에는 Label + Letter로 충분할꺼라 생각했는데, 오늘 생각해보니 Label 안 짓고 쓰는 사용자가 꽤 많다는게 생각이 나더군요
물른 File Manager 들어있고, 고르면 dir하면서 물어보긴하는데, 이러는게 나을꺼같더군요
다만 아쉬운게 bat로 출력하니 Label의 길이나 볼름 용량의 문자열 길이에 따라 저렇게 좀 보기 싫게 정렬이 되는걸 어찌 하기가 힘드네요
출력할떄 vbs 쓰니 아마 vbs에서 변수 길이 체크후 모잘란만큼 공백으로 채워주게 바꾸어서 출력하면 해결될꺼같긴한데, vbs는 실력이 모잘라네요 (오늘 버전 함수 만들때도 이런일 아니면 안 다루는 batch랑 거의 안 쓰는 vbs 다루느라 삽질 꽤 함)
-
왕초보 2021.09.29 22:22
오토잇에서도 같은 방식입니다..빈공간을 더한후..다시 잘라내고 있습니다
복구시스템을 구성해 드릴때 강제로 여쭈어보고 볼률명을 꼭 지정해 드립니다..pe부팅시 드라이브 문자는 바꿀수 있어서..볼륨명을 꼭
강조를 하고 있습니다
VBS에도 오른쪽 왼쪽 잘라내는것이 있어서 찾아 보았습니다...
https://ko.myservername.com/vbscript-string-functions
링크에는 " 가 숨표 2개로 되어 있어서 아래처럼 수정을 해보았습니다..저도 덕분에 찾았습니다...공부를 해봐야겠습니다
생각보다 기능이 많네요.. 예제에는 Right 는 빠져있습니다
Dim strval,strval1,var1,var2,var3,var4,var5,strval2,var6,var7,var8,var9
strval ="My name is Ram"
strval1="name"
strval2="My name is Ram"
var1=Instr(strval,"Ram")
var2=Ucase(strval)
var3=Left(strval,4)
var4=Len(strval)
var5=trim(strval1)
var6=Mid(strval,6)
var7=Replace(strval,"Ram","Shyam")
var8=Space(6)
var9=StrComp(strval,strval1)
Msgbox "Position returned by Instr function is " & var1
Msgbox "Uppercase returned by function is " & var2
Msgbox "Left characters returned by function is " & var3
Msgbox "Length returned by Len function is " & var4
Msgbox "Value returned after Trim function is " & var5
Msgbox "Value returned by Mid function is " & var6
Msgbox "New value returned after replacing is " & var7
Msgbox "String returned by Space function is " & var8
Msgbox "String Comparison returns " & val1
-
파란하늘흰구름 2021.09.29 20:20
수고많으셨습니다.
-
경대 2021.09.29 21:25
감사합니다 수고하셨습니다
-
wellsoap 2021.09.29 23:33
수고 많으셨습니다.
-
별의아이 2021.09.30 08:07
고생하셨습니다^^
-
kanghc2000 2021.10.04 06:30
수고하셧습니다
감사합니다