-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathwindick.cmd
2915 lines (2915 loc) · 241 KB
/
windick.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
::Windows Deployment Image Customization Kit v 1194 (C) Joshua Cline - All rights reserved
::Build, administrate and backup your Windows in a native WinPE recovery environment.
@ECHO OFF&&SETLOCAL ENABLEDELAYEDEXPANSION&&CHCP 437>NUL
SET "VER_GET=%0"&&CALL:GET_PROGVER&&SET "ARG0=%*"
SET "ORIG_CD=%CD%"&&CD /D "%~DP0"&&CALL:GET_INIT
IF DEFINED ERR_MSG ECHO.ERROR: %ERR_MSG%&&PAUSE&&GOTO:QUIT
FOR %%1 in (1 2 3 4 5 6 7 8 9) DO (CALL SET "ARG%%1=%%%%1%%")
CALL:GET_ARGS&CALL:GET_SID&CALL:MOUNT_INT
IF DEFINED ARG1 SET "PROG_MODE=COMMAND"&&GOTO:COMMAND_MODE
IF NOT "%PROG_FOLDER%"=="X:\$" SET "PROG_MODE=PORTABLE"&&CALL:SETS_HANDLER&&GOTO:MAIN_MENU
IF "%PROG_FOLDER%"=="X:\$" IF "%SystemDrive%"=="X:" SET "PROG_MODE=RAMDISK"
IF EXIST "%PROG_FOLDER%\RECOVERY_LOCK" CALL:RECOVERY_LOCK
IF DEFINED LOCKOUT GOTO:QUIT
CALL:HOST_AUTO&&CALL:SETS_HANDLER&&CALL:LOGO
REG.EXE DELETE "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\MiniNT" /f>NUL 2>&1
::#########################################################################
:MAIN_MENU
::#########################################################################
@ECHO OFF&&CLS&&SET "MOUNT="&&IF NOT DEFINED MENU_MODE SET "MENU_MODE=NORMAL"
IF "%MENU_MODE%"=="CUSTOM" GOTO:CUSTOM_MODE
IF "%MENU_MODE%"=="BASIC" IF "%PROG_MODE%"=="RAMDISK" GOTO:BASIC_MODE
IF "%MENU_MODE%"=="BASIC" IF "%PROG_MODE%"=="PORTABLE" GOTO:BASIC_CREATOR
CLS&&CALL:SETS_HANDLER&&CALL:CLEAN&&CALL:GET_SPACE&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Windows Deployment Image Customization Kit&&ECHO.&&ECHO. (%##%1%#$%) Image Processing&&ECHO. (%##%2%#$%) Image Management&&ECHO. (%##%3%#$%) Package Creator&&ECHO. (%##%4%#$%) File Management&&ECHO. (%##%5%#$%) Disk Management&&ECHO. (%##%6%#$%) Settings&&IF "%PROG_MODE%"=="RAMDISK" ECHO. (%##%.%#$%) Change Boot Order
ECHO.&&IF "%PROG_MODE%"=="RAMDISK" IF "%PROG_SOURCE%"=="Z:\%HOST_FOLDERX%" ECHO. ^< Disk %#@%%HOST_NUMBER%%#$% UID %#@%%HOST_TARGET%%#$% ^>
IF "%PROG_MODE%"=="RAMDISK" IF "%PROG_SOURCE%"=="X:\$" ECHO. ^< Disk %XLR2%Error%#$% UID %XLR2%%HOST_TARGET%%#$% ^>
CALL:BOXB1&&CALL:PAD_LINE&&TITLE Windows Deployment Image Customization Kit v%VER_CUR% (%PROG_SOURCE%)
ECHO. (%##%Q%#$%)uit (%##%*%#$%) Basic Menu %#@%%FREE%GB%#$% Free&&CALL:PAD_LINE
CALL:MENU_SELECT
IF "%SELECT%"=="Q" GOTO:QUIT
IF DEFINED SELECT CALL:SHORTCUT_RUN
IF DEFINED HOST_ERROR GOTO:MAIN_MENU
IF "%SELECT%"=="1" GOTO:IMAGE_PROCESSING
IF "%SELECT%"=="2" GOTO:IMAGE_MANAGER
IF "%SELECT%"=="3" GOTO:PACKAGE_CREATOR
IF "%SELECT%"=="4" GOTO:FILE_MANAGER
IF "%SELECT%"=="5" IF NOT DEFINED DISCLAIMER CALL:DISCLAIMER
IF "%SELECT%"=="5" IF DEFINED DISCLAIMER GOTO:DISK_MANAGER
IF "%SELECT%"=="6" GOTO:SETTINGS_MENU
IF "%SELECT%"=="~" SET&&CALL:PAUSED
IF "%SELECT%"=="*" IF "%PROG_MODE%"=="PORTABLE" SET "MENU_MODE=BASIC"&&GOTO:BASIC_CREATOR
IF "%SELECT%"=="*" IF "%PROG_MODE%"=="RAMDISK" SET "MENU_MODE=BASIC"&&GOTO:BASIC_MODE
IF "%SELECT%"=="." IF "%PROG_MODE%"=="RAMDISK" CALL:BCD_MENU
GOTO:MAIN_MENU
:BASIC_MODE
@ECHO OFF&&SET "MOUNT="&&CLS&&CALL:SETS_HANDLER&&CALL:CLEAN&&CALL:GET_SPACE&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Windows Deployment Image Customization Kit&&ECHO.&&ECHO. (%##%1%#$%) Backup&&ECHO. (%##%2%#$%) Restore&&ECHO. (%##%3%#$%) Boot Creator&&ECHO. (%##%.%#$%) Change Boot Order
ECHO.&&IF "%PROG_MODE%"=="RAMDISK" IF "%PROG_SOURCE%"=="Z:\%HOST_FOLDERX%" ECHO. ^< Disk %#@%%HOST_NUMBER%%#$% UID %#@%%HOST_TARGET%%#$% ^>
IF "%PROG_MODE%"=="RAMDISK" IF "%PROG_SOURCE%"=="X:\$" ECHO. ^< Disk %XLR2%Error%#$% UID %XLR2%%HOST_TARGET%%#$% ^>
CALL:BOXB1&&CALL:PAD_LINE&&TITLE Windows Deployment Image Customization Kit v%VER_CUR% (%PROG_SOURCE%)
ECHO. (%##%Q%#$%)uit (%##%*%#$%) Main Menu %#@%%FREE%GB%#$% Free&&CALL:PAD_LINE
CALL:MENU_SELECT
IF "%SELECT%"=="Q" GOTO:QUIT
IF DEFINED SELECT CALL:SHORTCUT_RUN
IF DEFINED HOST_ERROR GOTO:BASIC_MODE
IF "%SELECT%"=="." CALL:BCD_MENU&SET "SELECT="
IF "%SELECT%"=="1" CALL:BASIC_BACKUP&SET "SELECT="
IF "%SELECT%"=="2" CALL:BASIC_RESTORE&SET "SELECT="
IF "%SELECT%"=="3" GOTO:BASIC_CREATOR
IF "%SELECT%"=="*" SET "MENU_MODE=NORMAL"&&GOTO:MAIN_MENU
GOTO:BASIC_MODE
:PAD_LINE
IF NOT DEFINED PAD_TYPE SET "PAD_TYPE=1"
IF NOT DEFINED ACC_COLOR SET "ACC_COLOR=6"
IF NOT DEFINED BTN_COLOR SET "BTN_COLOR=7"
IF NOT DEFINED TXT_COLOR SET "TXT_COLOR=0"
IF NOT DEFINED PAD_SIZE SET "PAD_SIZE=LARGE"
IF NOT DEFINED PAD_SEQ SET "PAD_SEQ=6666600000"
IF NOT DEFINED CHCP_OLD FOR /F "TOKENS=2 DELIMS=:" %%a IN ('CHCP') DO SET "CHCP_OLD=%%a"
FOR %%a in (1 2 3 4 5 6 7 8) DO (IF "%PAD_TYPE%"=="%%a" CHCP 65001 >NUL)
IF "%PAD_TYPE%"=="0" SET "PADX= "
IF "%PAD_TYPE%"=="1" SET "PADX=◌"
IF "%PAD_TYPE%"=="2" SET "PADX=○"
IF "%PAD_TYPE%"=="3" SET "PADX=●"
IF "%PAD_TYPE%"=="4" SET "PADX=□"
IF "%PAD_TYPE%"=="5" SET "PADX=■"
IF "%PAD_TYPE%"=="6" SET "PADX=░"
IF "%PAD_TYPE%"=="7" SET "PADX=▒"
IF "%PAD_TYPE%"=="8" SET "PADX=▓"
IF "%PAD_TYPE%"=="9" SET "PADX=~"
IF "%PAD_TYPE%"=="10" SET "PADX=="
IF "%PAD_TYPE%"=="11" SET "PADX=#"
CALL SET "#@=%%XLR%ACC_COLOR%%%"&&CALL SET "##=%%XLR%BTN_COLOR%%%"&&CALL SET "#$=%%XLR%TXT_COLOR%%%"&&IF "%PAD_TYPE%"=="0" ECHO.%#$%&&EXIT /B
SET "PAD_SEQX=%PAD_SEQ%"&&IF NOT "%PAD_SEQ%X"=="%PAD_SEQX%X" SET "XNTX=0"&&SET "XLRX="&&FOR /F "DELIMS=" %%G IN ('CMD.EXE /D /U /C ECHO.%PAD_SEQ%^| FIND /V ""') do (CALL SET "XLRX=%%G"&&CALL:COLOR_ASSIGN&&CALL SET /A XNTX+=1)
IF "%PAD_SIZE%"=="LARGE" SET "PAD_BLK=%PADX%%PADX%%PADX%%PADX%%PADX%%PADX%%PADX%%PADX%%PADX%%PADX%"
IF "%PAD_SIZE%"=="SMALL" SET "PAD_BLK=%#0%%PADX%%#1%%PADX%%#2%%PADX%%#3%%PADX%%#4%%PADX%%#5%%PADX%%#6%%PADX%%#7%%PADX%%#8%%PADX%%#9%%PADX%"
IF "%PAD_SIZE%"=="LARGE" ECHO.%#0%%PAD_BLK%%#1%%PAD_BLK%%#2%%PAD_BLK%%#3%%PAD_BLK%%#4%%PAD_BLK%%#5%%PAD_BLK%%#6%%PAD_BLK%%#$%
IF "%PAD_SIZE%"=="SMALL" ECHO.%PAD_BLK%%PAD_BLK%%PAD_BLK%%PAD_BLK%%PAD_BLK%%PAD_BLK%%PAD_BLK%%#$%
SET "#Z=%#$%"&&SET "#0=%#1%"&SET "#1=%#2%"&SET "#2=%#3%"&SET "#3=%#4%"&SET "#4=%#5%"&SET "#5=%#6%"&SET "#6=%#7%"&SET "#7=%#8%"&SET "#8=%#9%"&SET "#9=%#0%"&&SET "PAD_BLK="&&SET "PADX="&&SET "XLRX=%#$%"&&FOR %%a in (1 2 3 4 5 6 7 8) DO (IF "%PAD_TYPE%"=="%%a" CHCP %CHCP_OLD% >NUL)
EXIT /B
:COLOR_ASSIGN
IF DEFINED XNTX CALL SET "#%XNTX%=%%XLR%XLRX%%%"
EXIT /B
:PAD_WRITE
IF NOT DEFINED CHCP_TMP FOR /F "TOKENS=2 DELIMS=:" %%a IN ('CHCP') DO SET "CHCP_TMP=%%a"
CHCP 65001 >NUL&&ECHO.■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■&&CHCP %CHCP_TMP% >NUL
::ECHO.>>"TXT.TXT" 2>&1
EXIT /B
:BOX0
SET "BOX=0"&&GOTO:BOX_DISP
:BOXT1
SET "BOX=T1"&&GOTO:BOX_DISP
:BOXB1
SET "BOX=B1"&&GOTO:BOX_DISP
:BOXT2
SET "BOX=T2"&&GOTO:BOX_DISP
:BOXB2
SET "BOX=B2"&&GOTO:BOX_DISP
:BOX_DISP
IF "%PAD_BOX%"=="DISABLED" EXIT /B
IF NOT DEFINED CHCP_OLD FOR /F "TOKENS=2 DELIMS=:" %%a IN ('CHCP') DO SET "CHCP_OLD=%%a"
CHCP 65001 >NUL
IF "%BOX%"=="0" ECHO.%##%► ◄%#$%
IF "%BOX%"=="T1" ECHO.%##%╭────────────────────────────────────────────────────────────────────╮%#$%
IF "%BOX%"=="B1" ECHO.%##%╰────────────────────────────────────────────────────────────────────╯%#$%
IF "%BOX%"=="T2" ECHO.%##%┌────────────────────────────────────────────────────────────────────┐%#$%
IF "%BOX%"=="B2" ECHO.%##%└────────────────────────────────────────────────────────────────────┘%#$%
SET "BOX="&&CHCP %CHCP_OLD% >NUL
EXIT /B
:MENU_SELECT
SET "$CHOICE="&&CALL:PROMPT_SET
CALL SET "$CHOICE=%%$ITEM%SELECT%%%"
EXIT /B
:PROMPT_SET
IF NOT DEFINED CHECK SET "CHECK=MENU"
IF NOT DEFINED QUOTE SET "QUOTE=NONE"
IF NOT DEFINED PROMPT_SET SET "PROMPT_SET=SELECT"
SET "ERROR="&&SET "%PROMPT_SET%="&&SET "PROMPT_VAR="&&SET /P "PROMPT_VAR=$>>"
IF NOT DEFINED PROMPT_VAR SET "%PROMPT_SET%="&&GOTO:PROMPT_SET_END
IF "%QUOTE%"=="NONE" SET "PROMPT_VAR=%PROMPT_VAR:"=%"
SET "PROMPT_VAR=%PROMPT_VAR:&=^%"
SET "PROMPT_VAR=%PROMPT_VAR:|=^%"
SET "PROMPT_VAR=%PROMPT_VAR:!=^%"
SET "PROMPT_VAR=%PROMPT_VAR:;=^%"
IF "%QUOTE%"=="ALLOW" SET "INPUT=%PROMPT_VAR:"=""%"
IF "%QUOTE%"=="ALLOW" SET "OUTPUT=PROMPT_VAR"&&CALL:QUOTE
IF NOT DEFINED PROMPT_VAR SET "%PROMPT_SET%="&&GOTO:PROMPT_SET_END
IF NOT DEFINED ERROR IF NOT DEFINED PROMPT_VAR SET "ERROR=1"&&GOTO:PROMPT_SET_END
IF NOT DEFINED ERROR IF DEFINED CHECK SET "CHECK_VAR=%PROMPT_VAR%"&&CALL:CHECK
IF NOT DEFINED ERROR IF NOT DEFINED PROMPT_ANY SET "CAPS_SET=%PROMPT_SET%"&&SET "CAPS_VAR=%PROMPT_VAR%"&&CALL:CAPS_SET
IF NOT DEFINED ERROR IF DEFINED PROMPT_ANY SET "%PROMPT_SET%=%PROMPT_VAR%"
:PROMPT_SET_END
FOR %%a in (PROMPT_VAR %PROMPT_SET%) DO (IF NOT DEFINED %%a SET "ERROR=1")
IF "%PROMPT_VAR%"=="=" SET "ERROR=1"
IF DEFINED ERROR IF DEFINED VERBOSE FOR /F "TOKENS=*" %%a in ("%PROMPT_VAR% ") DO (ECHO. %XLR4%ERROR:%#$% input [ %XLR4%%%a%#$%] is invalid)
IF DEFINED ERROR SET "%PROMPT_SET%="
FOR %%a in (VERBOSE CHECK INPUT OUTPUT PROMPT_ANY PROMPT_SET PROMPT_VAR QUOTE) DO (SET "%%a=")
EXIT /B
:CHECK
SET "ERROR="&&IF NOT DEFINED CHECK_VAR SET "ERROR=1"
IF "%CHECK%"=="NUM" SET "CHECK_FLT=0 1 2 3 4 5 6 7 8 9 ^""
IF "%CHECK%"=="LTR" SET "CHECK_FLT=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ^""
IF "%CHECK%"=="ALPHA" SET "CHECK_FLT=0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z ^""
IF "%CHECK%"=="MENU" SET "CHECK_FLT=0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z @ # $ . - _ + = ~ ^* ^""
IF "%CHECK%"=="MOST" SET "CHECK_FLT=0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z @ # $ ^\ ^/ ^: ^( ^) ^[ ^] ^{ ^} ^. ^- ^_ ^+ ^= ^~ ^* ^%% ^""
IF NOT DEFINED ERROR FOR /F "DELIMS=" %%$ in ('CMD.EXE /D /U /C ECHO."%CHECK_VAR%"^| FIND /V ""') do (SET "$GO="&&FOR %%a in (%CHECK_FLT%) DO (
IF "[%%$]"=="[*]" IF NOT DEFINED NO_ASTRK SET "$GO=1"
IF "[%%$]"=="[ ]" IF NOT DEFINED NO_SPACE SET "$GO=1"
IF "[%%a]"=="[%%$]" SET "$GO=1")
IF NOT DEFINED $GO SET "ERROR=1")
FOR %%a in (CHECK INPUT OUTPUT CHECK_VAR CHECK_FLT NO_SPACE NO_ASTRK) DO (SET "%%a=")
EXIT /B
:CHAR_CHK
FOR %%a in (CHAR_STR CHAR_CHK) DO (IF NOT DEFINED %%a EXIT /B)
SET "CHAR_FLG="&&FOR /F "DELIMS=" %%$ in ('CMD.EXE /D /U /C ECHO.%CHAR_STR%^| FIND /V ""') do (IF "%%$"=="%CHAR_CHK%" SET "ERROR=1"&&SET "CHAR_FLG=1")
EXIT /B
:CAPS_SET
IF NOT DEFINED CAPS_VAR SET "%CAPS_SET%="&&SET "CAPS_SET="&&SET "CAPS_VAR="&&SET "CASE="&&EXIT /B
IF NOT DEFINED CASE SET "CASE=UPPER"
IF "%CASE%"=="LOWER" FOR %%G in (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO (CALL SET "CAPS_VAR=%%CAPS_VAR:%%G=%%G%%")
IF "%CASE%"=="UPPER" FOR %%G in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (CALL SET "CAPS_VAR=%%CAPS_VAR:%%G=%%G%%")
IF "%CAPS_VAR%"=="a=a" SET "CAPS_VAR="
IF "%CAPS_VAR%"=="A=A" SET "CAPS_VAR="
CALL SET "%CAPS_SET%=%CAPS_VAR%"&&SET "CAPS_SET="&&SET "CAPS_VAR="&&SET "CASE="
EXIT /B
:QUOTE
IF NOT DEFINED INPUT SET "QUOTE="&&SET "OUTPUT="&&SET "ERROR=1"&&EXIT /B
IF "%QUOTE%"=="NONE" SET "%OUTPUT%=%INPUT:"=%"
IF "%QUOTE%"=="NONE" SET "QUOTE="&&SET "INPUT="&&SET "OUTPUT="&&EXIT /B
SET "XNT=0"&&SET "$HALT="&&SET "CHECK_FLTX= ^" "
IF DEFINED INPUT FOR /F "DELIMS=" %%$ in ('CMD.EXE /D /U /C ECHO."%INPUT%"^| FIND /V ""') do (FOR %%X in (%CHECK_FLTX%) DO (IF "[%%X]"=="[%%$]" SET /A "XNT+=1"))
SET /A "XNT/=2"
FOR %%a in (2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50) DO (IF "%%a"=="%XNT%" SET "ERROR=1"&&SET "%OUTPUT%=%INPUT%")
IF NOT DEFINED ERROR SET "%OUTPUT%=%INPUT:""="%"
FOR %%a in (QUOTE INPUT OUTPUT CHECK_FLTX) DO (SET "%%a=")
EXIT /B
:RECOVERY_LOCK
SET "LOCKOUT="&&ECHO. Enter password
SET "PROMPT_SET=RECOVERY_PROMPT"&&SET "PROMPT_ANY=1"&&SET "CHECK=MOST"&&CALL:PROMPT_SET
SET /P RECOVERY_LOCK=<"%PROG_FOLDER%\RECOVERY_LOCK"
IF NOT "%RECOVERY_PROMPT%"=="%RECOVERY_LOCK%" SET "LOCKOUT=1"
SET "RECOVERY_PROMPT="&&SET "RECOVERY_LOCK="
EXIT /B
:GET_INIT
SET "ERR_MSG="&&FOR /F "TOKENS=*" %%a in ("%CD%") DO (SET "CAPS_SET=PROG_FOLDER"&&SET "CAPS_VAR=%%a"&&CALL:CAPS_SET)
FOR /F "TOKENS=1-2 DELIMS=:" %%a IN ("%PROG_FOLDER%") DO (SET "CHAR_STR=%%b"&&SET "CHAR_CHK= "&&CALL:CHAR_CHK&&IF "%%b"=="\" SET "PROG_FOLDER=%%a:")
IF DEFINED CHAR_FLG SET "ERR_MSG=Remove the space from the path or folder name, then launch again."
IF NOT EXIST "%PROG_FOLDER%" SET "ERR_MSG=Invalid path or folder name. Relocate, then launch again."
IF "%PROG_FOLDER%"=="X:\$" IF NOT "%SYSTEMDRIVE%"=="X:" SET "ERR_MSG=Relocate to path other than X:\$."
IF "%PROG_FOLDER%"=="%SYSTEMDRIVE%\WINDOWS\SYSTEM32" SET "ERR_MSG=Invalid path or folder name. Relocate, then launch again."
SET "PATH_TEMP="&&FOR /F "TOKENS=1-9 DELIMS=\" %%a IN ("%PROG_FOLDER%") DO (IF "%%a\%%b\%%c"=="%SystemDrive%\WINDOWS\TEMP" SET "PATH_TEMP=1"
IF "%%a\%%b\%%d\%%e\%%f"=="%SystemDrive%\USERS\APPDATA\LOCAL\TEMP" SET "PATH_TEMP=1")
IF DEFINED PATH_TEMP SET "ERR_MSG=This should not be run from a temp folder. Extract zip into a new folder, then launch again."
Reg.exe query "HKU\S-1-5-19\Environment">NUL
IF NOT "%ERRORLEVEL%" EQU "0" SET "ERR_MSG=Right click and run as administrator."
SET "LANG_PASS="&&FOR /F "TOKENS=4-5 DELIMS= " %%a IN ('DIR') DO (IF "%%a %%b"=="bytes free" SET "LANG_PASS=1")
IF NOT DEFINED LANG_PASS SET "ERR_MSG=Non-english host language/locale."
IF "%SYSTEMDRIVE%"=="X:" IF EXIST "X:\$\HOST_TARGET" SET "WINPE_BOOT=1"
EXIT /B
:GET_ARGS
FOR %%1 in (1 2 3 4 5 6 7 8 9) DO (IF DEFINED ARG%%1 SET "ARGZ=%%1"&&CALL SET "ARGX=%%ARG%%1%%"&&CALL:ARGUE)
IF DEFINED ARG1 FOR %%G in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
FOR %%1 in (1 2 3 4 5 6 7 8 9) DO (IF DEFINED ARG%%1 CALL SET "ARG%%1=%%ARG%%1:%%G=%%G%%"))
EXIT /B
:ARGUE
CALL SET "ARG%ARGZ%=%ARGX:"=%"
EXIT /B
:SLASH
FOR /F "DELIMS=" %%G in ('CMD.EXE /D /U /C ECHO.%INPUT%^| FIND /V ""') do (SET "SLASH_X=%%G"&&CALL:SLASH_X)
IF NOT "%SLASH_X%"=="\" IF EXIST "%INPUT%\" SET "%OUTPUT%=%INPUT%"
IF "%SLASH_X%"=="\" IF EXIST "%INPUT%" SET "%OUTPUT%=%SLASH_Z%"
IF NOT EXIST "%INPUT%\" SET "%OUTPUT%="
FOR %%a in (SLASH_X SLASH_Y SLASH_Z OUTPUT INPUT) DO (SET "%%a=")
EXIT /B
:SLASH_X
SET "SLASH_Z=%SLASH_Y%"&&SET "SLASH_Y=%SLASH_Y%%SLASH_X%"
EXIT /B
:GET_SIZE
FOR %%a in (INPUT OUTPUT) DO (IF NOT DEFINED %%a EXIT /B)
SET "%OUTPUT%="&&SET "XNT=0"&&FOR /F "DELIMS=" %%G in ('CMD.EXE /D /U /C ECHO.%INPUT%^| FIND /V ""') do (SET "CHAR=%%G"&&SET /A "XNT+=1"&&CALL:CHAR_XNT)
GOTO:GET_SIZE_%GET_SIZE%
:GET_SIZE_GB
IF %XNT% LSS 10 SET /A "%OUTPUT%=0"
IF "%XNT%"=="10" SET /A "%OUTPUT%=%CHAR1%"
IF "%XNT%"=="11" SET /A "%OUTPUT%=%CHAR1%%CHAR2%"
IF "%XNT%"=="12" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%"
IF "%XNT%"=="13" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%"
IF "%XNT%"=="14" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%"
IF "%XNT%"=="15" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%"
IF "%XNT%"=="16" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%%CHAR7%"
GOTO:GET_SIZE_END
:GET_SIZE_MB
IF %XNT% LSS 7 SET /A "%OUTPUT%=0"
IF "%XNT%"=="7" SET /A "%OUTPUT%=%CHAR1%"
IF "%XNT%"=="8" SET /A "%OUTPUT%=%CHAR1%%CHAR2%"
IF "%XNT%"=="9" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%"
IF "%XNT%"=="10" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%"
IF "%XNT%"=="11" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%"
IF "%XNT%"=="12" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%"
IF "%XNT%"=="13" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%%CHAR7%"
IF "%XNT%"=="14" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%%CHAR7%%CHAR8%"
IF "%XNT%"=="15" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%%CHAR7%%CHAR8%%CHAR9%"
IF "%XNT%"=="16" SET /A "%OUTPUT%=%CHAR1%%CHAR2%%CHAR3%%CHAR4%%CHAR5%%CHAR6%%CHAR7%%CHAR8%%CHAR9%%CHAR10%"
:GET_SIZE_END
FOR %%a in (1 2 3 4 5 6 7 8 9 10) DO (SET "CHAR%%a=")
SET "INPUT="&&SET "OUTPUT="&&SET "CHAR="&&SET "GET_SIZE="&&EXIT /B
:CHAR_XNT
IF %XNT% GTR 10 EXIT /B
SET "CHAR%XNT%=%CHAR%"
EXIT /B
:GET_FREE
FOR %%a in (INPUT OUTPUT) DO (IF NOT DEFINED %%a EXIT /B)
SET "%OUTPUT%="&&FOR /F "TOKENS=1-5 DELIMS= " %%a IN ('DIR "%INPUT%\" 2^>NUL') DO (SET "OUTPUTX=%%c")
IF NOT DEFINED OUTPUTX SET "ERROR=1"&&SET "%OUTPUT%=ERROR"&&SET "OUTPUT="&&SET "INPUT="&&EXIT /B
SET "%OUTPUT%=%OUTPUTX:,=%"
CALL SET "CHECK_VAR=%%%OUTPUT%%%"&&SET "CHECK=NUM"&&CALL:CHECK
IF NOT DEFINED ERROR CALL SET "INPUT=%%%OUTPUT%%%"&&CALL:GET_SIZE
SET "OUTPUT="&&SET "OUTPUTX="&&SET "INPUT="&&EXIT /B
:GET_SPACE
SET "FREE="&&FOR /F "TOKENS=1-5 DELIMS= " %%a IN ('DIR "%PROG_SOURCE%\"') DO (SET "FREE=%%c")
IF DEFINED FREE SET "FREE=%FREE:,=%"
IF DEFINED FREE SET "GET_SIZE=GB"&&SET "INPUT=%FREE%"&&SET "OUTPUT=FREE"&&CALL:GET_SIZE
EXIT /B
:GET_FILESIZE
FOR %%a in (INPUT OUTPUT) DO (IF NOT DEFINED %%a EXIT /B)
SET "%OUTPUT%="&&FOR /F "TOKENS=1-5* SKIP=3 DELIMS= " %%a IN ('DIR "%INPUT%"') DO (IF NOT "%%e"=="" IF NOT DEFINED OUTPUTX SET "OUTPUTX=%%d")
IF NOT DEFINED OUTPUTX SET "ERROR=1"&&SET "%OUTPUT%=ERROR"&&SET "OUTPUT="&&SET "INPUT="&&EXIT /B
SET "%OUTPUT%=%OUTPUTX:,=%"
CALL SET "CHECK_VAR=%%%OUTPUT%%%"&&SET "CHECK=NUM"&&CALL:CHECK
IF NOT DEFINED ERROR CALL SET "INPUT=%%%OUTPUT%%%"&&CALL:GET_SIZE
SET "OUTPUT="&&SET "OUTPUTX="&&SET "INPUT="&&EXIT /B
:GET_FILEEXT
SET "PATH_X="&&SET "FILE_X="&&SET "EXT_X="&&FOR %%G in ("%INPUT%") DO (SET "PATH_X=%%~dG%%~pG"&&SET "FILE_X=%%~nG"&&SET "EXT_X=%%~xG")
SET "INPUT="&&EXIT /B
:GET_SID
FOR /F "TOKENS=2* SKIP=1 DELIMS=:\. " %%a in ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v LastLoggedOnUser 2^>NUL') do (IF "%%a"=="REG_SZ" SET "CUR_USR=%%b")
FOR /F "TOKENS=2* SKIP=1 DELIMS=:\. " %%a in ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" /v LastLoggedOnUserSID 2^>NUL') do (IF "%%a"=="REG_SZ" SET "CUR_SID=%%b")
SET "ERRORLEVEL=0"&&EXIT /B
:GET_NEXTBOOT
SET "BOOT_OK="&&SET "GUID_TMP="&&SET "GUID_CUR="&&FOR /F "TOKENS=1-5 DELIMS= " %%a in ('BCDEDIT.EXE /V') do (
IF "%%a"=="displayorder" SET "GUID_CUR=%%b"
IF "%%a"=="identifier" SET "GUID_TMP=%%b"
IF "%%a"=="description" IF "%%b"=="Recovery" SET "BOOT_OK=1"&&GOTO:GET_NEXTBOOTX)
:GET_NEXTBOOTX
IF "%GUID_TMP%"=="%GUID_CUR%" SET "NEXT_BOOT=RECOVERY"
IF NOT "%GUID_TMP%"=="%GUID_CUR%" SET "NEXT_BOOT=VHDX"
EXIT /B
:GET_WIMINDEX
IF NOT DEFINED IMAGE_X EXIT /B
FOR /F "TOKENS=1-5 SKIP=5 DELIMS=:<> " %%a in ('DISM /ENGLISH /GET-IMAGEINFO /IMAGEFILE:"%IMAGE_X%" 2^>NUL') DO (IF "%%a"=="Index" SET "INDEX_Z=%%b"
IF "%%d"=="%INDEX_WORD%" SET "INDEX_WORD="&&SET "IMAGE_X="&&EXIT /B)
SET "INDEX_WORD="&&SET "INDEX_Z="&&SET "IMAGE_X="&&EXIT /B
:GET_PATHINFO
FOR %%a in ($PATHEDIT $PATHVER) DO (IF DEFINED %%a SET "%%a=")
IF "%PATH_X%"=="%SYSTEMDRIVE%" SET "IMAGE_X=ONLINE"
IF "%PATH_X%"=="%SYSTEMDRIVE%\" SET "IMAGE_X=ONLINE"
IF NOT "%IMAGE_X%"=="ONLINE" SET "IMAGE_X=IMAGE:"%PATH_X%""
FOR /F "TOKENS=1-2* DELIMS=<>: " %%a in ('DISM /ENGLISH /%IMAGE_X% /GET-CURRENTEDITION 2^>NUL') DO (IF "%%a %%b"=="Image Version" IF NOT "%%c"=="undefined>" SET "$PATHVER=%%c"
IF "%%a %%b"=="Current Edition" IF NOT "%%c"=="undefined>" SET "$PATHEDIT=%%c")
IF NOT DEFINED $PATHVER SET "ERROR=1"
SET "PATH_X="&&SET "IMAGE_X="&&EXIT /B
:GET_IMAGEINFO
FOR %%a in ($IMGNAME $IMGEDIT $IMGDESC $IMGVER $BUILD) DO (IF DEFINED %%a SET "%%a=")
FOR /F "TOKENS=1-2* SKIP=3 DELIMS=:<> " %%a in ('DISM /ENGLISH /GET-IMAGEINFO /IMAGEFILE:"%IMAGE_X%" /Index:%INDEX_X% 2^>NUL') DO (
IF "%%a"=="Name" IF NOT "%%b"=="undefined" IF NOT "%%c"=="" SET "$IMGNAME=%%b %%c"
IF "%%a"=="Name" IF NOT "%%b"=="undefined" IF "%%c"=="" SET "$IMGNAME=%%b"
IF "%%a"=="Description" IF NOT "%%b"=="undefined" IF NOT "%%c"=="" SET "$IMGDESC=%%b %%c"
IF "%%a"=="Description" IF NOT "%%b"=="undefined" IF "%%c"=="" SET "$IMGDESC=%%b"
IF "%%a"=="Version" IF NOT "%%b"=="undefined" SET "$IMGVER=%%b"
IF "%%a"=="Edition" IF NOT "%%b"=="undefined" SET "$IMGEDIT=%%b"
IF "%%a %%b"=="ServicePack Build" IF NOT "%%c"=="undefined>" SET "$BUILD=%%c")
IF DEFINED $IMGVER IF DEFINED $BUILD SET "$IMGVER=%$IMGVER%.%$BUILD%"&&SET "$BUILD="
IF NOT DEFINED $IMGVER SET "ERROR=1"
SET "IMAGE_X="&&SET "INDEX_X="&&EXIT /B
:GET_PROGVER
IF NOT DEFINED VER_SET SET "VER_SET=VER_CUR"
IF EXIST "%VER_GET%" SET /P VER_CHK=<"%VER_GET%"
SET "%VER_SET%="&&FOR /F "TOKENS=1-9 DELIMS= " %%A IN ("%VER_CHK%") DO (SET "%VER_SET%=%%G")
IF NOT DEFINED %VER_SET% SET "ERROR=1"
SET "VER_CHK="&&SET "VER_GET="&&SET "VER_SET="&&EXIT /B
:GET_HEAD
SET "$HEAD="&&FOR %%a in (HEAD_CHECK HEAD_EXT) DO (IF NOT DEFINED %%a EXIT /B)
SET /P $HEAD=<"%HEAD_CHECK%"
IF "%HEAD_EXT%"=="LIST" IF NOT "%$HEAD%"=="EXEC-LIST" IF NOT "%$HEAD%"=="MULTI-LIST" SET "ERROR=1"
IF "%HEAD_EXT%"=="BASE" IF NOT "%$HEAD%"=="BASE-LIST" IF NOT "%$HEAD%"=="BASE-GROUP" SET "ERROR=1"
IF DEFINED ERROR ECHO.&&ECHO. %XLR2%ERROR:%#$% Bad file header, check file.&&ECHO.
SET "HEAD_CHECK="&&SET "HEAD_EXT="&&EXIT /B
:GET_RANDOM
IF NOT DEFINED RND_TYPE SET "RND_TYPE=1"
CALL:RND%RND_TYPE% >NUL 2>&1
IF NOT DEFINED RND1 GOTO:GET_RANDOM
IF "%RND2%"=="%RND1%" GOTO:GET_RANDOM
SET "RND2=%RND1%"&&CALL SET "%RND_SET%=%RND1%"&&SET "RND_TYPE="&&SET "RND_SET="&&SET "RND1="
EXIT /B
:RND1
FOR /F "TOKENS=1-9 DELIMS=:." %%a in ("%TIME%") DO (FOR /F "DELIMS=" %%G IN ('CMD.EXE /D /U /C CALL ECHO.%%d') DO (CALL SET "RND1=%%G"))
EXIT /B
:RND2
SET "RND1=%RANDOM%%RANDOM%"&&SET "RND1=!RND1:~5,5!"&&SET "RND1=!RND1:~1,1!"
EXIT /B
:TIMER
FOR /F "TOKENS=3 DELIMS=:." %%a in ("%TIME%") DO (IF NOT "%%a"=="%TIMER_LAST%" SET "TIMER_LAST=%%a"&&SET /A "TIMER-=1"&&IF DEFINED TIMER_MSG CLS&&CALL ECHO.%TIMER_MSG%)
IF NOT "%TIMER%"=="0" GOTO:TIMER
SET "TIMER="&&SET "TIMER_LAST="&&SET "TIMER_MSG="&&EXIT /B
:TIMER_POINT3
FOR /F "TOKENS=1-9 DELIMS=:." %%a in ("%TIME%") DO (FOR /F "DELIMS=" %%G IN ('CMD.EXE /D /U /C CALL ECHO.%%d') DO (CALL SET "TIMER_X=%%G"))
FOR %%a in (2 5 8) DO (IF "%TIMER_X%"=="%%a" SET "TIMER_X="&&EXIT /B)
GOTO:TIMER_POINT3
:CLEAN
IF NOT EXIST "$*" EXIT /B
IF EXIST "%PROG_SOURCE%\$TEMP.vhdx" CALL:VTEMP_DELETE>NUL 2>&1
IF EXIST "%PROG_SOURCE%\$TEMP.wim" DEL /Q /F "%PROG_SOURCE%\$TEMP.wim">NUL 2>&1
FOR %%G in (HZ TMP LST DSK RUN) DO (IF EXIST "$%%G*" DEL /Q /F "$%%G*">NUL 2>&1)
FOR %%G in (DRVR FEAT) DO (IF NOT DEFINED %%G_QRY IF EXIST "$%%G" DEL /Q /F "$%%G">NUL 2>&1)
FOR %%G in (RAS RATI) DO (IF NOT DEFINED CURR_SESSION IF EXIST "$%%G.cmd" CALL:RASTI_CHECK&CALL:RAS_DELETE&DEL /Q /F "$%%G.cmd">NUL 2>&1)
EXIT /B
:FOLDER_DEL
IF NOT DEFINED FOLDER_DEL EXIT /B
DISM /cleanup-MountPoints>NUL 2>&1
ATTRIB -R -S -H "%FOLDER_DEL%" /S /D /L>NUL 2>&1
TAKEOWN /F "%FOLDER_DEL%" /R /D Y>NUL 2>&1
ICACLS "%FOLDER_DEL%" /grant %USERNAME%:F /T>NUL 2>&1
RD /S /Q "\\?\%FOLDER_DEL%">NUL 2>&1
SET "FOLDER_DEL="&&EXIT /B
:PAD_PREV
ECHO. Press (%##%Enter%#$%) to return to previous menu
EXIT /B
:PAUSED
IF NOT DEFINED NO_PAUSE SET /P "PAUSED=. Press (%##%Enter%#$%) to continue..."
SET "NO_PAUSE="&&EXIT /B
:CONFIRM
IF DEFINED ERROR EXIT /B
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. %XLR4%Are you sure?%#$% Press (%##%X%#$%) to proceed&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&CALL SET "PROMPT_SET=CONFIRM"&&CALL:PROMPT_SET
IF NOT "%CONFIRM%"=="X" SET "ERROR=1"
EXIT /B
:LOGO
IF "%RECOVERY_LOGO%"=="DISABLED" EXIT /B
IF NOT DEFINED RECOVERY_LOGO SET "RECOVERY_LOGO=DISABLED"
IF NOT DEFINED CHCP_OLD FOR /F "TOKENS=2 DELIMS=:" %%a IN ('CHCP') DO SET "CHCP_OLD=%%a"
CHCP 65001>NUL
SET "ROW_X=%%@1%%█%%@2%%█%%@3%%█%%@4%%█%%@1%%█%%@2%%█%%@3%%█%%@4%%█"&&SET "ROW_T=%%@1%% %%@2%%▀%%@3%%█%%@4%%█%%@1%%█%%@2%%█%%@3%%▀%%@4%% "&&SET "ROW_B=%%@1%% %%@2%%▄%%@3%%█%%@4%%█%%@1%%█%%@2%%█%%@3%%▄%%@4%% "
SET "RND_SET=@1"&&CALL:GET_RANDOM&&SET "RND_SET=@2"&&CALL:GET_RANDOM&&SET "RND_SET=@3"&&CALL:GET_RANDOM&&SET "RND_SET=@4"&&CALL:GET_RANDOM
CALL SET "@1=%%XLR%@1%%%"&&CALL SET "@2=%%XLR%@2%%%"&&CALL SET "@3=%%XLR%@3%%%"&&CALL SET "@4=%%XLR%@4%%%"
SET "LOGOX="&&SET "XNTZ="&&CALL:LOGO_X&&CLS&&CHCP %CHCP_OLD% >NUL
FOR %%a in (@1 @2 @3 @4 @5 @6 @7 @8 @9 ROW_X ROW_T ROW_B) DO (SET "%%a=")
EXIT /B
:LOGO_X
CLS&&CALL ECHO.%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%&&SET "@1=%@2%"&SET "@2=%@3%"&SET "@3=%@4%"&SET "@4=%@1%"&&CALL ECHO.%ROW_T%%ROW_T%%ROW_T%%ROW_T%%ROW_T%%ROW_T%%ROW_T%%ROW_T%%ROW_T%&&ECHO.&&ECHO. %XLR0%WELCOME TO&&ECHO.&&ECHO. %@1% ▄█ █▄ ▄█ ███▄▄▄▄ ███████▄ ▄█ ▄███████ ▄█ ▄█▄&&ECHO. %@2%███ ███ ███ ███▀▀▀██▄ ███ ▀███ ███ ███ ███ ███ ▄███▀&&ECHO. %@3%███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███▐██▀&&ECHO. %@4%███ ███ ███ ███ ███ ███ ███ ███ ███ ▄█████▀&&ECHO. %@1%███ ███ ███ ███ ███ ███ ███ ███ ███ █▄ ███▐██▄&&ECHO. %@2%███ ▄█▄ ███ ███ ███ ███ ███ ▄███ ███ ███ ███ ███ ▀███▄&&ECHO. %@3% ▀███▀███▀ █▀ ▀█ █▀ ███████▀ █▀ ███████▀ ███ ▀█▀&&ECHO.&&ECHO. %XLR0%RECOVERY ENVIRONMENT&&ECHO.
CALL ECHO.%ROW_B%%ROW_B%%ROW_B%%ROW_B%%ROW_B%%ROW_B%%ROW_B%%ROW_B%%ROW_B%&&SET "@1=%@2%"&SET "@2=%@3%"&SET "@3=%@4%"&SET "@4=%@1%"
CALL ECHO.%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%ROW_X%%#$% &&SET "@1=%@4%"&SET "@2=%@1%"&SET "@3=%@2%"&SET "@4=%@3%"
CALL:TIMER_POINT3&SET /A "XNTZ+=1"&IF NOT "%XNTZ%"=="7" GOTO:LOGO_X
EXIT /B
:SETS_LIST
SET SETS_LIST=PAD_BOX PAD_TYPE PAD_SIZE PAD_SEQ TXT_COLOR ACC_COLOR BTN_COLOR COMPRESS SOURCE_TYPE WIM_SOURCE VHDX_SOURCE TARGET_TYPE WIM_TARGET WIM_INDEX VHDX_TARGET VHDX_SIZE SAFE_EXCLUDE HOST_HIDE HOST_SIZE PE_WALLPAPER BOOT_TIMEOUT VHDX_SLOTX VHDX_SLOT0 VHDX_SLOT1 VHDX_SLOT2 VHDX_SLOT3 VHDX_SLOT4 VHDX_SLOT5 VHDX_SLOT6 VHDX_SLOT7 VHDX_SLOT8 VHDX_SLOT9 ADDFILE_0 ADDFILE_1 ADDFILE_2 ADDFILE_3 ADDFILE_4 ADDFILE_5 ADDFILE_6 ADDFILE_7 ADDFILE_8 ADDFILE_9 HOTKEY_1 SHORT_1 HOTKEY_2 SHORT_2 HOTKEY_3 SHORT_3 HOTKEY_4 SHORT_4 HOTKEY_5 SHORT_5 RECOVERY_LOGO MENU_MODE MENU_LIST MENU_BANNER DISCLAIMER ALLOW_ENV APPX_SKIP COMP_SKIP SVC_SKIP SXS_SKIP
EXIT /B
:SETS_LOAD
IF EXIST "settings.ini" FOR /F "eol=- TOKENS=1-2 DELIMS==" %%a in (settings.ini) DO (IF NOT "%%a"==" " SET "%%a=%%b")
EXIT /B
:SETS_CLEAR
CALL:SETS_LIST
FOR %%a in (%SETS_LIST%) DO (SET %%a=)
SET "SETS_LIST="&&EXIT /B
:SETS_HANDLER
IF NOT EXIST "%PROG_SOURCE%" SET "PROG_SOURCE=%PROG_FOLDER%"
CD /D "%PROG_FOLDER%"&&IF EXIST "settings.ini" IF NOT DEFINED $ETS SET "$ETS=1"&&CALL:SETS_LOAD
CALL:SETS_LIST&&ECHO.Windows Deployment Image Customization Kit v %VER_CUR% Settings>"settings.ini"
FOR %%a in (%SETS_LIST%) DO (CALL ECHO.%%a=%%%%a%%>>"settings.ini")
SET "SETS_LIST="&&IF "%PROG_MODE%"=="RAMDISK" IF "%PROG_SOURCE%"=="X:\$" SET "HOST_GET=1"
IF "%PROG_MODE%"=="RAMDISK" IF NOT "%DISK_TARGET%"=="%HOST_TARGET%" SET "HOST_GET=1"
IF DEFINED HOST_GET SET "HOST_GET="&&CALL:HOST_AUTO
IF "%PROG_MODE%"=="RAMDISK" IF EXIST "Z:\%HOST_FOLDERX%" COPY /Y "settings.ini" "Z:\%HOST_FOLDERX%">NUL
:SETS_MAIN
SET ":=;"&&SET "LB=["&&SET "RB=]"&&SET "@=^^"&&SET "+=^&"&&SET "{=^<"&&SET "}=^>"&&SET "}}=^>^>"&&SET "-=^|"
IF NOT DEFINED VHDX_SIZE SET "VHDX_SIZE=25000"
IF NOT DEFINED PAD_BOX SET "PAD_BOX=ENABLED"
IF NOT DEFINED PAD_SEQ SET "PAD_SEQ=6666600000"
IF NOT DEFINED HOST_FOLDER SET "HOST_FOLDER=$"
IF NOT DEFINED HOST_HIDE SET "HOST_HIDE=DISABLED"
IF NOT DEFINED ALLOW_ENV SET "ALLOW_ENV=DISABLED"
IF NOT DEFINED ADDFILE_0 SET "ADDFILE_0=LIST\tweaks.base"
IF NOT DEFINED ADDFILE_1 SET "ADDFILE_1=LIST\tools.list"
IF NOT DEFINED HOTKEY_1 SET "HOTKEY_1=CMD"&&SET "SHORT_1=CMD.EXE"
IF NOT DEFINED HOTKEY_2 SET "HOTKEY_2=NOTE"&&SET "SHORT_2=NOTEPAD.EXE"
IF NOT DEFINED HOTKEY_3 SET "HOTKEY_3=REG"&&SET "SHORT_3=REGEDIT.EXE"
IF NOT DEFINED APPX_SKIP SET "APPX_SKIP=Microsoft.DesktopAppInstaller Microsoft.VCLibs.140.00"
IF NOT "%COMPRESS%"=="FAST" IF NOT "%COMPRESS%"=="MAX" SET "COMPRESS=FAST"
SET "FOLDER_MODE=UNIFIED"&&IF EXIST "%PROG_SOURCE%\CACHE" IF EXIST "%PROG_SOURCE%\IMAGE" IF EXIST "%PROG_SOURCE%\PACK" IF EXIST "%PROG_SOURCE%\LIST" IF EXIST "%PROG_SOURCE%\BOOT" SET "FOLDER_MODE=ISOLATED"
IF "%FOLDER_MODE%"=="ISOLATED" FOR %%a in (CACHE IMAGE PACK LIST BOOT) DO (SET "%%a_FOLDER=%PROG_SOURCE%\%%a")
IF "%FOLDER_MODE%"=="UNIFIED" FOR %%a in (CACHE IMAGE PACK LIST BOOT) DO (SET "%%a_FOLDER=%PROG_SOURCE%")
IF NOT DEFINED XLR0 SET "XLR0=[97m"&&SET "XLR1=[31m"&&SET "XLR2=[91m"&&SET "XLR3=[33m"&&SET "XLR4=[93m"&&SET "XLR5=[92m"&&SET "XLR6=[96m"&&SET "XLR7=[94m"&&SET "XLR8=[34m"&&SET "XLR9=[95m"&&CALL:PAD_LINE>NUL 2>&1
IF NOT DEFINED COLOR0 FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a="&&SET "COLOR%%a=%%XLR%%a%%")
FOR %%a in (SELECTX SELECTY SELECTZ $VHDX ERROR LIVE_APPLY ALLOW_ENVTMP $HALT $HALTX VDISK VDISK_LTR VDISK_ATTACHED VDISK_FLAG DUAL_SESSION PKX_SESSION LST_SESSION CURR_SESSION LAST_SESSION FEAT_QRY DRVR_QRY) DO (SET "%%a=")
IF "%PROG_MODE%"=="COMMAND" EXIT /B
FOR %%a in (MENU_LIST) DO (SET "OBJ_FLD=%LIST_FOLDER%"&&CALL SET "OBJ_CHK=%%a"&&CALL:OBJ_CLEAR)
FOR %%a in (PE_WALLPAPER) DO (SET "OBJ_FLD=%CACHE_FOLDER%"&&CALL SET "OBJ_CHK=%%a"&&CALL:OBJ_CLEAR)
FOR %%a in (VHDX_SLOTX WIM_SOURCE VHDX_SOURCE) DO (SET "OBJ_FLD=%IMAGE_FOLDER%"&&CALL SET "OBJ_CHK=%%a"&&CALL:OBJ_CLEAR)
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "ADDFILE_NUM=%%a"&&CALL SET "ADDFILE_CHK=%%ADDFILE_%%a%%"&&CALL:ADDFILE_CHK)
IF "%PROG_MODE%"=="RAMDISK" FOR %%a in (VHDX_SLOT0 VHDX_SLOT1 VHDX_SLOT2 VHDX_SLOT3 VHDX_SLOT4 VHDX_SLOT5 VHDX_SLOT6 VHDX_SLOT7 VHDX_SLOT8 VHDX_SLOT9) DO (SET "OBJ_FLD=%PROG_SOURCE%"&&CALL SET "OBJ_CHK=%%a"&&CALL:OBJ_CLEAR)
FOR %%a in (MENU_LIST PE_WALLPAPER PATH_SOURCE PATH_TARGET WIM_SOURCE VHDX_SOURCE WIM_TARGET VHDX_TARGET VHDX_SLOTX VHDX_SLOT0 VHDX_SLOT1 VHDX_SLOT2 VHDX_SLOT3 VHDX_SLOT4 VHDX_SLOT5 VHDX_SLOT6 VHDX_SLOT7 VHDX_SLOT8 VHDX_SLOT9) DO (IF NOT DEFINED %%a SET "%%a=SELECT")
IF NOT EXIST "%PATH_SOURCE%\" SET "PATH_SOURCE=SELECT"
IF NOT EXIST "%PATH_TARGET%\" SET "PATH_TARGET=SELECT"
FOR %%a in (ADDFILE_CHK ADDFILE_NUM OBJ_FLD OBJ_CHK OBJ_CHKX) DO (SET "%%a=")
EXIT /B
:ADDFILE_CHK
IF NOT DEFINED ADDFILE_%ADDFILE_NUM% SET "ADDFILE_%ADDFILE_NUM%=SELECT"
FOR /F "TOKENS=1-9 DELIMS=\" %%a in ("%ADDFILE_CHK%") DO (
IF "%%a"=="pack" IF NOT EXIST "%PACK_FOLDER%\%%b" SET "ADDFILE_%ADDFILE_NUM%=SELECT"
IF "%%a"=="list" IF NOT EXIST "%LIST_FOLDER%\%%b" SET "ADDFILE_%ADDFILE_NUM%=SELECT"
IF "%%a"=="image" IF NOT EXIST "%IMAGE_FOLDER%\%%b" SET "ADDFILE_%ADDFILE_NUM%=SELECT"
IF "%%a"=="cache" IF NOT EXIST "%CACHE_FOLDER%\%%b" SET "ADDFILE_%ADDFILE_NUM%=SELECT"
IF "%%a"=="main" IF NOT EXIST "%PROG_SOURCE%\%%b" SET "ADDFILE_%ADDFILE_NUM%=SELECT")
EXIT /B
:OBJ_CLEAR
CALL SET "OBJ_CHKX=%%%OBJ_CHK%%%"
IF NOT EXIST "%OBJ_FLD%\%OBJ_CHKX%" CALL SET "%OBJ_CHK%=SELECT"
EXIT /B
:FOLDER_MODE
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. The folder structure will be regenerated. If a file is &&ECHO. open or mounted and cannot be moved it's possible to lose data.&&ECHO.&&ECHO. Press (%##%X%#$%) to proceed&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&CALL:MENU_SELECT
IF NOT "%SELECT%"=="X" EXIT /B
IF "%FOLDER_MODE%"=="UNIFIED" SET "FOLDER_MODE=ISOLATED"&&GOTO:FOLDER_ISOLATED
IF "%FOLDER_MODE%"=="ISOLATED" SET "FOLDER_MODE=UNIFIED"&&GOTO:FOLDER_UNIFIED
:FOLDER_UNIFIED
FOR %%a in (CACHE IMAGE PACK LIST BOOT) DO (IF EXIST "%PROG_SOURCE%\%%a" MOVE /Y "%PROG_SOURCE%\%%a\*.*" "%PROG_SOURCE%">NUL 2>&1)
FOR %%a in (CACHE IMAGE PACK LIST BOOT) DO (IF EXIST "%PROG_SOURCE%\%%a" XCOPY /S /C /Y "%PROG_SOURCE%\%%a" "%PROG_SOURCE%">NUL 2>&1)
FOR %%a in (CACHE IMAGE PACK LIST BOOT) DO (IF EXIST "%PROG_SOURCE%\%%a" RD /Q /S "\\?\%PROG_SOURCE%\%%a">NUL 2>&1)
EXIT /B
:FOLDER_ISOLATED
FOR %%a in (cache image pack list boot) DO (IF NOT EXIST "%PROG_SOURCE%\%%a" MD "%PROG_SOURCE%\%%a">NUL 2>&1)
FOR %%a in (XML JPG PNG REG) DO (IF EXIST "%PROG_SOURCE%\*.%%a" MOVE /Y "%PROG_SOURCE%\*.%%a" "%PROG_SOURCE%\CACHE">NUL 2>&1)
FOR %%a in (EFI SDI SAV) DO (IF EXIST "%PROG_SOURCE%\*.%%a" MOVE /Y "%PROG_SOURCE%\*.%%a" "%PROG_SOURCE%\BOOT">NUL 2>&1)
FOR %%a in (LIST BASE) DO (IF EXIST "%PROG_SOURCE%\*.%%a" MOVE /Y "%PROG_SOURCE%\*.%%a" "%PROG_SOURCE%\LIST">NUL 2>&1)
FOR %%a in (ISO VHDX WIM) DO (IF EXIST "%PROG_SOURCE%\*.%%a" MOVE /Y "%PROG_SOURCE%\*.%%a" "%PROG_SOURCE%\IMAGE">NUL 2>&1)
FOR %%a in (PKX CAB MSU APPX APPXBUNDLE MSIXBUNDLE) DO (IF EXIST "%PROG_SOURCE%\*.%%a" MOVE /Y "%PROG_SOURCE%\*.%%a" "%PROG_SOURCE%\PACK">NUL 2>&1)
EXIT /B
:FILE_PICK
IF NOT DEFINED PICK GOTO:PICK_ERROR
IF NOT DEFINED NOCLS CLS
IF NOT DEFINED NOPAD CALL:PAD_LINE
CALL:BOXT1&&SET "NLIST=%PICK%"&&CALL:FILE_LIST&&CALL:BOXB1&&IF NOT DEFINED NOPAD CALL:PAD_LINE
FOR %%a in (ERROR SELECT $LIST_NAME $MAKE $PICK $CHOICE $HEAD $PICK_PATH $PICK_BODY $PICK_EXT FILE_NAME NOCLS NOPAD) DO (SET "%%a=")
CALL:PAD_PREV&&CALL:MENU_SELECT
IF "%SELECT%"=="." GOTO:PICK_ERROR
IF "%SELECT%"=="@" IF DEFINED ALLOW_ENVTMP IF "%PICK%"=="VHDX" SET "LIVE_APPLY=1"&&GOTO:PICK_ERROR
IF "%SELECT%"=="@" IF "%ALLOW_ENV%"=="ENABLED" IF "%PICK%"=="VHDX" SET "LIVE_APPLY=1"&&GOTO:PICK_ERROR
IF "%SELECT%"=="@" IF NOT "%ALLOW_ENV%"=="ENABLED" IF "%PICK%"=="VHDX" ECHO.&&ECHO. %XLR4%ERROR:%#$% Enable the current environment as a target in settings.&&ECHO.&&CALL:PAUSED&GOTO:PICK_ERROR
IF "%SELECT%"=="0" IF NOT "%PICK%"=="LIST" SET "ERROR=1"
IF "%SELECT%" GTR "9999999" SET "ERROR=1"
IF "%SELECT%" LSS "0" SET "ERROR=1"
IF DEFINED ERROR GOTO:PICK_ERROR
IF "%SELECT%"=="0" IF "%PICK%"=="LIST" SET "$MAKE=1"&&GOTO:$MAKE
IF NOT "%SELECT%"=="0" IF NOT DEFINED $CHOICE SET "ERROR=1"&&GOTO:PICK_ERROR
IF NOT DEFINED $FOLD_X SET "ERROR=1"&&GOTO:PICK_ERROR
IF NOT EXIST "%$FOLD_X%\%$CHOICE%" SET "ERROR=1"&&GOTO:PICK_ERROR
:$MAKE
IF DEFINED $MAKE CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter name of new .LIST&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV
IF DEFINED $MAKE SET /P "$LIST_NAME=$>>"
IF DEFINED $MAKE IF NOT DEFINED $LIST_NAME SET "ERROR=1"&&GOTO:PICK_ERROR
IF DEFINED $MAKE SET "$CHOICE=%$LIST_NAME%.list"&&ECHO.EXEC-LIST>"%$FOLD_X%\%$LIST_NAME%.list"
IF EXIST "%$FOLD_X%\%$CHOICE%" SET "$PICK=%$FOLD_X%\%$CHOICE%"
FOR %%a in (LIST BASE) DO (IF "%PICK%"=="%%a" SET "HEAD_EXT=%%a"&&SET "HEAD_CHECK=%$PICK%"&&CALL:GET_HEAD)
IF DEFINED ERROR CALL:PAUSED
:PICK_ERROR
IF NOT DEFINED ERROR FOR %%G in ("%$PICK%") DO (SET "$PICK_PATH=%%~dG%%~pG"&&SET "$PICK_BODY=%%~nG"&&SET "$PICK_EXT=%%~xG")
IF NOT DEFINED ERROR FOR %%G in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (CALL SET "$PICK_PATH=%%$PICK_PATH:%%G=%%G%%"&&CALL SET "$PICK_BODY=%%$PICK_BODY:%%G=%%G%%"&&CALL SET "$PICK_EXT=%%$PICK_EXT:%%G=%%G%%")
SET "ALLOW_ENVTMP="&&SET "PICK="&&IF DEFINED ERROR SET "$PICK="
EXIT /B
:FILE_LIST
SET "EMPTY_X=1"&&SET "$FOLD_X="&&SET "$FILT_X="&&SET "$XNT="&&FOR %%a in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30) DO (IF DEFINED $ITEM%%a SET "$ITEM%%a=")
IF NOT DEFINED BLIST IF NOT DEFINED NLIST GOTO:FILE_ERROR
FOR %%a in (BLIST NLIST) DO (IF DEFINED %%a CALL SET "EXT=%%%%a%%")
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (IF DEFINED MENUT%%a CALL ECHO.%%MENUT%%a%%&&SET "MENUT%%a=")
FOR %%a in (ISO VHDX WIM) DO (IF "%EXT%"=="%%a" SET "$FOLD_X=%IMAGE_FOLDER%"&&SET "$FILT_X=*.%EXT%"&&CALL:FILE_LIST_FOLD)
FOR %%a in (APPX APPXBUNDLE MSIXBUNDLE PKX CAB MSU) DO (IF "%EXT%"=="%%a" SET "$FOLD_X=%PACK_FOLDER%"&&SET "$FILT_X=*.%EXT%"&&CALL:FILE_LIST_FOLD)
FOR %%a in (LIST BASE) DO (IF "%EXT%"=="%%a" SET "$FOLD_X=%LIST_FOLDER%"&&SET "$FILT_X=*.%EXT%"&&CALL:FILE_LIST_FOLD)
IF "%EXT%"=="CUST" FOR %%X in (0 1 2 3 4 5 6 7 8 9) DO (IF DEFINED $FOLD%%X IF DEFINED $FILT%%X CALL SET "$FOLD_X=%%$FOLD%%X%%"&&CALL SET "$FILT_X=%%$FILT%%X%%"&&SET "$FOLD%%X="&&SET "$FILT%%X="&&CALL:FILE_LIST_FOLD)
IF DEFINED EMPTY_X ECHO. EMPTY..
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (IF DEFINED MENUB%%a CALL ECHO.%%MENUB%%a%%&&SET "MENUB%%a=")
:FILE_ERROR
FOR %%a in ($FILT_X EMPTY_X EXT BLIST NLIST $XNT) DO (SET "%%a=")
EXIT /B
:FILE_LIST_FOLD
FOR /F "TOKENS=1-9 DELIMS= " %%a in ("%$FILT_X%") DO (IF NOT "%%a"=="" SET "$FILT_X=%%a"&&CALL:FILE_LIST_FILT&&IF NOT "%%b"=="" SET "$FILT_X=%%b"&&CALL:FILE_LIST_FILT&&IF NOT "%%c"=="" SET "$FILT_X=%%c"&&CALL:FILE_LIST_FILT&&IF NOT "%%d"=="" SET "$FILT_X=%%d"&&CALL:FILE_LIST_FILT&&IF NOT "%%e"=="" SET "$FILT_X=%%e"&&CALL:FILE_LIST_FILT&&IF NOT "%%f"=="" SET "$FILT_X=%%f"&&CALL:FILE_LIST_FILT&&IF NOT "%%g"=="" SET "$FILT_X=%%g"&&CALL:FILE_LIST_FILT&&IF NOT "%%h"=="" SET "$FILT_X=%%h"&&CALL:FILE_LIST_FILT)
EXIT /B
:FILE_LIST_FILT
IF EXIST "%$FOLD_X%\%$FILT_X%" SET "EMPTY_X="&&FOR /F "TOKENS=*" %%a in ('DIR /A: /B /O:GN "%$FOLD_X%\%$FILT_X%"') DO (CALL SET /A "$XNT+=1"&&CALL SET "$CLM$=%%a"&&CALL:FILE_LISTX)
EXIT /B
:FILE_LISTX
CALL SET "$ITEM%$XNT%=%$CLM$%"
IF EXIST "%$FOLD_X%\%$CLM$%\*" (SET "LIST_CLR1=%#@%"&&SET "LIST_CLR2=%#$%") ELSE (SET "LIST_CLR1="&&SET "LIST_CLR2=")
IF DEFINED NLIST ECHO. ( %##%%$XNT%%#$% ) %LIST_CLR1%%$CLM$%%LIST_CLR2%
IF DEFINED BLIST ECHO. %LIST_CLR1%%$CLM$%%LIST_CLR2%
EXIT /B
:LIST_FILE
SET "ERROR="&&SET "$XNT="&&FOR %%a in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30) DO (IF DEFINED $ITEM%%a SET "$ITEM%%a=")
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a=")
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a=%%COLOR%%a%%")
IF NOT DEFINED BLIST IF NOT DEFINED NLIST GOTO:LIST_ERROR
IF NOT EXIST "%$LIST%" GOTO:LIST_ERROR
FOR %%a in (BLIST NLIST) DO (IF DEFINED %%a CALL SET "EXT=%%%%a%%")
SET "HEAD_EXT=%EXT%"&&SET "HEAD_CHECK=%$LIST%"&&CALL:GET_HEAD
IF DEFINED ERROR CALL:PAUSED&GOTO:LIST_ERROR
COPY /Y "%$LIST%" "$HZ">NUL 2>&1
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (IF DEFINED MENUT%%a CALL ECHO.%%MENUT%%a%%&&SET "MENUT%%a=")
SET "$CLM1_LST="&&SET "$CLM2_LST="&&SET "$CLM3_LST="&&FOR %%Z in (BASE LIST) DO (IF "%EXT%"=="%%Z" FOR /F "TOKENS=1-9 SKIP=1 DELIMS=[]" %%1 in ($HZ) DO (IF NOT "%%1"=="" CALL SET "$CLM1=%%1"&&CALL SET "$CLM2=%%2"&&CALL SET "$CLM3=%%3"&&CALL SET "$CLM4=%%4"&&CALL:LIST_FILEX))
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (IF DEFINED MENUB%%a CALL ECHO.%%MENUB%%a%%&&SET "MENUB%%a=")
IF EXIST "$HZ" DEL /F "$HZ">NUL 2>&1
:LIST_ERROR
FOR %%a in ($LIST $CLM1 $CLM2 $CLM3 $CLM1_LST $CLM2_LST $CLM3_LST EXT BLIST NLIST ONLY1 ONLY2 ONLY3 $XNT) DO (SET "%%a=")
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a=")
EXIT /B
:LIST_FILEX
IF DEFINED ONLY1 IF NOT "%$CLM1%"=="%ONLY1%" EXIT /B
IF DEFINED ONLY2 IF NOT "%$CLM2%"=="%ONLY2%" EXIT /B
IF DEFINED ONLY3 IF NOT "%$CLM3%"=="%ONLY3%" EXIT /B
IF "%$HEAD%"=="MULTI-LIST" GOTO:LIST_FILEZ
IF "%$HEAD%"=="BASE-GROUP" GOTO:LIST_FILEZ
CALL SET /A "$XNT+=1"
CALL SET "$ITEM%$XNT%=[%$CLM1%][%$CLM2%][%$CLM3%]"
IF DEFINED NLIST CALL ECHO. %#$%( %##%%$XNT%%#$% ) %$CLM2%
IF DEFINED BLIST CALL ECHO. %#@%%$CLM1%%#$% %$CLM2%
EXIT /B
:LIST_FILEZ
IF DEFINED ONLY1 IF NOT DEFINED ONLY2 IF "%$CLM2%"=="%$CLM2_LST%" EXIT /B
SET "$CLM1_LST=%$CLM1%"&&SET "$CLM2_LST=%$CLM2%"&&SET "$CLM3_LST=%$CLM3%"
CALL SET /A "$XNT+=1"
CALL SET "$ITEM%$XNT%=[%$CLM1%][%$CLM2%][%$CLM3%]"
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (CALL SET "COLOR%%a=%%XLR%%a%%")
IF DEFINED ONLY1 IF DEFINED ONLY2 CALL ECHO. %#$%( %##%%$XNT%%#$% ) %$CLM3%%#$%&&IF NOT "%$CLM4%"=="" CALL ECHO.%#$%%$CLM4%%#$%
IF DEFINED ONLY1 IF NOT DEFINED ONLY2 CALL ECHO. %#$%( %##%%$XNT%%#$% ) %$CLM2%%#$%
IF DEFINED ONLY1 FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a=")
IF DEFINED ONLY2 FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (SET "COLOR%%a=%%COLOR%%a%%")
EXIT /B
::#########################################################################
:COMMAND_MODE
::#########################################################################
IF DEFINED ARG1 IF NOT "%ARG1%"=="/?" IF NOT "%ARG1%"=="-HELP" IF NOT "%ARG1%"=="-AUTOBOOT" IF NOT "%ARG1%"=="-NEXTBOOT" IF NOT "%ARG1%"=="-BOOTMAKER" IF NOT "%ARG1%"=="-DISKMGR" IF NOT "%ARG1%"=="-FILEMGR" IF NOT "%ARG1%"=="-IMAGEPROC" IF NOT "%ARG1%"=="-IMAGEMGR" ECHO. Type windick.cmd -help for more options.&&GOTO:QUIT
SET "MOUNT="&&SET "ERROR="&&SET "PROG_SOURCE=%PROG_FOLDER%"&&CALL:SETS_MAIN&&SET "PAD_TYPE=0"&&CALL:GET_SPACE
IF "%ARG1%"=="/?" SET "ARG1=-HELP"
IF "%ARG1%"=="-HELP" CALL:COMMAND_HELP
IF "%ARG1%"=="-FILEMGR" IF NOT "%ARG2%"=="-GRANT" ECHO. Valid options are -grant
IF "%ARG1%"=="-FILEMGR" IF "%ARG2%"=="-GRANT" IF NOT EXIST "%ARG3%" ECHO. %XLR4%ERROR:%#$% %ARG3% doesn't exist
IF "%ARG1%"=="-FILEMGR" IF "%ARG2%"=="-GRANT" IF DEFINED ARG3 IF EXIST "%ARG3%" SET "$PICK=%ARG3%"&&SET "NO_PAUSE=1"&&CALL:FMGR_OWN
IF "%ARG1%"=="-NEXTBOOT" IF NOT "%ARG2%"=="-RECOVERY" IF NOT "%ARG2%"=="-VHDX" ECHO. Valid options are -recovery and -vhdx
IF "%ARG1%"=="-NEXTBOOT" FOR %%a in (VHDX RECOVERY) DO (IF "%ARG2%"=="-%%a" SET "BOOT_TARGET=%%a"&&CALL:BOOT_TOGGLE)
IF "%ARG1%"=="-NEXTBOOT" IF DEFINED NEXT_BOOT ECHO. Next boot is %NEXT_BOOT%
IF "%ARG1%"=="-NEXTBOOT" IF NOT DEFINED NEXT_BOOT ECHO. %XLR4%ERROR:%#$% The boot environment is not installed on this system.
IF "%ARG1%"=="-AUTOBOOT" IF NOT "%ARG2%"=="-INSTALL" IF NOT "%ARG2%"=="-REMOVE" ECHO. Valid options are -install and -remove
IF "%ARG1%"=="-AUTOBOOT" IF "%ARG2%"=="-REMOVE" SET "BOOTSVC=REMOVE"&&CALL:AUTOBOOT_SVC
IF "%ARG1%"=="-AUTOBOOT" IF "%ARG2%"=="-INSTALL" SET "BOOTSVC=INSTALL"&&CALL:AUTOBOOT_SVC
IF "%ARG1%"=="-BOOTMAKER" CALL:COMMAND_BOOTMAKER
IF "%ARG1%"=="-DISKMGR" CALL:COMMAND_DISKMGR
IF "%ARG1%"=="-IMAGEMGR" CALL:COMMAND_IMAGEMGR
IF "%ARG1%"=="-IMAGEPROC" CALL:COMMAND_IMAGEPROC
GOTO:QUIT
:COMMAND_IMAGEPROC
IF "%ARG2%"=="-WIM" IF DEFINED ARG3 IF NOT EXIST "%IMAGE_FOLDER%\%ARG3%" ECHO. %XLR4%ERROR:%#$% WIM %IMAGE_FOLDER%\%ARG3% doesn't exist&&EXIT /B
IF "%ARG2%"=="-VHDX" IF DEFINED ARG3 IF NOT EXIST "%IMAGE_FOLDER%\%ARG3%" ECHO. %XLR4%ERROR:%#$% VHDX %IMAGE_FOLDER%\%ARG3% doesn't exist&&EXIT /B
IF "%ARG2%"=="-WIM" IF DEFINED ARG3 IF EXIST "%IMAGE_FOLDER%\%ARG3%" IF "%ARG4%"=="-INDEX" IF DEFINED ARG5 IF "%ARG6%"=="-VHDX" IF DEFINED ARG7 IF "%ARG8%"=="-SIZE" IF DEFINED ARG9 SET "SOURCE_TYPE=WIM"&&SET "TARGET_TYPE=VHDX"&&SET "WIM_SOURCE=%ARG3%"&&SET "WIM_INDEX=%ARG5%"&&SET "VHDX_TARGET=%ARG7%"&&SET "VHDX_SIZE=%ARG9%"&&CALL:IMAGEPROC_START
IF "%ARG2%"=="-VHDX" IF DEFINED ARG3 IF EXIST "%IMAGE_FOLDER%\%ARG3%" IF "%ARG4%"=="-INDEX" IF DEFINED ARG5 IF "%ARG6%"=="-WIM" IF DEFINED ARG7 IF "%ARG8%"=="-XLVL" IF DEFINED ARG9 SET "SOURCE_TYPE=VHDX"&&SET "TARGET_TYPE=WIM"&&SET "VHDX_SOURCE=%ARG3%"&&SET "WIM_INDEX=%ARG5%"&&SET "WIM_TARGET=%ARG7%"&&SET "COMPRESS=%ARG9%"&&CALL:IMAGEPROC_START
EXIT /B
:COMMAND_IMAGEMGR
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-LIST" IF DEFINED ARG4 IF NOT EXIST "%LIST_FOLDER%\%ARG4%" ECHO. %XLR4%ERROR:%#$% %LIST_FOLDER%\%ARG4% doesn't exist&&EXIT /B
IF "%ARG2%"=="-RUN" IF "%ARG5%"=="-VHDX" IF DEFINED ARG6 IF NOT EXIST "%IMAGE_FOLDER%\%ARG6%" ECHO. %XLR4%ERROR:%#$% %IMAGE_FOLDER%\%ARG6% doesn't exist&&EXIT /B
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-ITEM" CALL:MOUNT_CLEAR&&IF DEFINED ARG4 SET "PARSE_X="&&FOR /F "TOKENS=1-9* DELIMS=[]" %%a in ('ECHO.%ARG0%') DO (IF "%%b"=="COMMAND" SET "PARSE_X=1"&&SET "ARG4=[%%b][%%c][%%d][%%e]"&&SET "ARGZ=5"&&CALL SET "ARGX=%%f"&&CALL:ARGUE)
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-ITEM" CALL:MOUNT_REST&&IF DEFINED PARSE_X FOR /F "TOKENS=1-6* DELIMS= " %%a in ('ECHO.%ARG5%') DO (SET "ARG5=%%a"&&SET "ARG6=%%b"&&SET "ARG7=%%c"&&SET "ARG8=%%d"&&SET "ARG9=%%e")
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-ITEM" IF DEFINED PARSE_X SET "PARSE_X="&&FOR %%a in (5 6 7 8 9) DO (SET "CAPS_SET=ARG%%a"&&CALL SET "CAPS_VAR=%%ARG%%a%%"&&CALL:CAPS_SET)
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-ITEM" IF DEFINED ARG4 SET "DEL_Z=1"&&SET "ARG3=-LIST"&&SET "ARG4=$LSTZ"&&(ECHO.EXEC-LIST&&ECHO.%ARG4%)>"%LIST_FOLDER%\$LSTZ"
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-LIST" IF DEFINED ARG4 IF EXIST "%LIST_FOLDER%\%ARG4%" SET "$RUN=%LIST_FOLDER%\%ARG4%"&&IF "%ARG5%"=="-LIVE" SET "LIVE_APPLY=1"&&SET "CURR_SESSION=EXEC"&&SET "LST_SESSION=1"&&CALL:LIST_RUN
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-LIST" IF DEFINED ARG4 IF EXIST "%LIST_FOLDER%\%ARG4%" SET "$RUN=%LIST_FOLDER%\%ARG4%"&&IF "%ARG5%"=="-VHDX" SET "LIVE_APPLY="&&IF DEFINED ARG6 IF EXIST "%IMAGE_FOLDER%\%ARG6%" SET "VDISK=%IMAGE_FOLDER%\%ARG6%"&&SET "CURR_SESSION=EXEC"&&SET "LST_SESSION=1"&&SET "VDISK_FLAG=1"&&CALL:LIST_RUN
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-PKX" IF DEFINED ARG4 IF EXIST "%PACK_FOLDER%\%ARG4%" SET "PKX_PACK=%PACK_FOLDER%\%ARG4%"&&IF "%ARG5%"=="-LIVE" SET "LIVE_APPLY=1"&&SET "CURR_SESSION=PACK"&&SET "PKX_SESSION=1"&&CALL:PKX_RUN
IF "%ARG2%"=="-RUN" IF "%ARG3%"=="-PKX" IF DEFINED ARG4 IF EXIST "%PACK_FOLDER%\%ARG4%" SET "PKX_PACK=%PACK_FOLDER%\%ARG4%"&&IF "%ARG5%"=="-VHDX" SET "LIVE_APPLY="&&IF DEFINED ARG6 IF EXIST "%IMAGE_FOLDER%\%ARG6%" SET "VDISK=%IMAGE_FOLDER%\%ARG6%"&&SET "CURR_SESSION=PACK"&&SET "PKX_SESSION=1"&&SET "VDISK_FLAG=1"&&CALL:PKX_RUN
SET "VDISK_FLAG="&&SET "CURR_SESSION="&&SET "LST_SESSION="&&SET "PKX_SESSION="&&IF DEFINED DEL_Z SET "DEL_Z="&&DEL /Q /F "%LIST_FOLDER%\$LSTZ">NUL 2>&1
EXIT /B
:COMMAND_DISKMGR
IF DEFINED ARG2 IF "%ARG3%"=="-DISKUID" IF DEFINED ARG4 SET "DISK_TARGET=%ARG4%"&&CALL:DISK_DETECT>NUL 2>&1
IF DEFINED ARG2 IF "%ARG3%"=="-DISKUID" IF DEFINED ARG4 SET "ARG3=-DISK"&&SET "ARG4=%DISK_DETECT%"
IF DEFINED ARG2 IF "%ARG3%"=="-DISK" IF "%DISK_TARGET%"=="00000000" ECHO. %XLR4%ERROR:%#$% Disk uid 00000000 can not be addressed by uid. Convert to GPT first (erase).&&EXIT /B
IF "%ARG2%"=="-LIST" CALL:DISK_LIST
IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&CALL:DISK_DETECT>NUL 2>&1
IF "%ARG3%"=="-DISK" IF DEFINED ARG4 CALL SET "DISK_TARGET=%%DISKID_%DISK_NUMBER%%%"&&CALL:DISK_DETECT>NUL 2>&1
IF "%ARG2%"=="-INSPECT" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&CALL:DISKMGR_INSPECT
IF "%ARG2%"=="-ERASE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&SET "$GET=TST_LETTER"&&CALL:LETTER_ANY&&CALL:DISKMGR_ERASE&SET "TST_LETTER="
IF "%ARG2%"=="-CHANGEUID" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&SET "GET_DISK_ID=%ARG5%"&&CALL:DISKMGR_CHANGEID
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&IF "%ARG5%"=="-SIZE" IF DEFINED ARG6 SET "PART_SIZE=%ARG6%"&&CALL:DISKMGR_CREATE
IF "%ARG2%"=="-FORMAT" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&IF "%ARG5%"=="-PART" IF DEFINED ARG6 SET "PART_NUMBER=%ARG6%"&&CALL:DISKMGR_FORMAT
IF "%ARG2%"=="-DELETE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&IF "%ARG5%"=="-PART" IF DEFINED ARG6 SET "PART_NUMBER=%ARG6%"&&CALL:DISKMGR_DELETE
IF "%ARG2%"=="-MOUNT" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&IF "%ARG5%"=="-PART" IF DEFINED ARG6 SET "PART_NUMBER=%ARG6%"&&IF "%ARG7%"=="-LETTER" IF DEFINED ARG8 SET "DISK_LETTER=%ARG8%"&&CALL:DISKMGR_MOUNT
IF "%ARG2%"=="-MOUNT" IF "%ARG3%"=="-VHDX" IF EXIST "%IMAGE_FOLDER%\%ARG4%" SET "VDISK=%IMAGE_FOLDER%\%ARG4%"&&IF "%ARG5%"=="-LETTER" IF DEFINED ARG6 SET "VDISK_LTR=%ARG6%"&&CALL:VDISK_ATTACH
IF "%ARG2%"=="-UNMOUNT" IF "%ARG3%"=="-LETTER" IF DEFINED ARG4 SET "$LTR=%ARG4%"&&CALL:DISKMGR_UNMOUNT
EXIT /B
:COMMAND_BOOTMAKER
IF "%ARG2%"=="-CREATE" IF NOT EXIST "%BOOT_FOLDER%\BOOT.SAV" ECHO. %XLR4%ERROR:%#$% BOOT MEDIA %BOOT_FOLDER%\BOOT.SAV doesn't exist&&EXIT /B
IF DEFINED ARG2 IF "%ARG3%"=="-DISKUID" IF DEFINED ARG4 SET "DISK_TARGET=%ARG4%"&&CALL:DISK_DETECT>NUL 2>&1
IF DEFINED ARG2 IF "%ARG3%"=="-DISKUID" IF DEFINED ARG4 SET "ARG3=-DISK"&&SET "ARG4=%DISK_DETECT%"
IF DEFINED ARG2 IF "%ARG3%"=="-DISK" IF "%DISK_TARGET%"=="00000000" ECHO. %XLR4%ERROR:%#$% Disk uid 00000000 can not addressed by uid. Convert to GPT first (erase).&&EXIT /B
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 SET "DISK_NUMBER=%ARG4%"&&CALL:DISK_DETECT>NUL 2>&1
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 CALL SET "DISK_TARGET=%%DISKID_%DISK_NUMBER%%%"&&CALL:DISK_DETECT>NUL 2>&1
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 IF "%ARG7%"=="-SIZE" IF DEFINED ARG8 SET "HOST_SIZE=%ARG8%"&&SET "CHECK=NUM"&&SET "CHECK_VAR=%ARG8%"&&CALL:CHECK
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 IF "%ARG7%"=="-SIZE" IF DEFINED ARG8 IF DEFINED ERROR ECHO. %XLR4%ERROR:%#$% Invalid host partition size.&&EXIT /B
IF "%ARG2%"=="-CREATE" IF "%ARG3%"=="-DISK" IF DEFINED ARG4 IF DEFINED ARG6 SET "VHDX_SLOTX=%ARG6%"&&CALL:BOOT_CREATOR_START
EXIT /B
:COMMAND_HELP
ECHO. Command Line Parameters:
ECHO. %##%Miscellaneous%#$%
ECHO. -help This menu
ECHO. -nextboot -vhdx Schedule next boot to vhdx
ECHO. -nextboot -recovery Schedule next boot to recovery
ECHO. -autoboot -install Install reboot to recovery switcher service
ECHO. -autoboot -remove Remove reboot to recovery switcher service
ECHO. %##%Image Processing%#$%
ECHO. -imageproc -wim %#@%x.wim%#$% -index %#@%#%#$% -vhdx %#@%x.vhdx%#$% -size %#@%MB%#$% WIM to VHDX Conversion
ECHO. -imageproc -vhdx %#@%x.vhdx%#$% -index %#@%#%#$% -wim %#@%x.wim%#$% -xlvl %#@%fast/max%#$% VHDX to WIM Conversion
ECHO. Examples-
ECHO. %#@%-imageproc -wim x.wim -index 1 -vhdx x.vhdx -size 25000%#$%
ECHO. %#@%-imageproc -vhdx x.vhdx -index 1 -wim x.wim -xlvl fast%#$%
ECHO. %##%Image Management%#$%
ECHO. -imagemgr -run -list %#@%x.list%#$% -live /or/ -vhdx %#@%x.vhdx%#$% Run list
ECHO. -imagemgr -run -item %#@%"[x][x][x][x]"%#$% -live /or/ -vhdx %#@%x.vhdx%#$% Run item
ECHO. -imagemgr -run -pkx %#@%x.pkx%#$% -live /or/ -vhdx %#@%x.vhdx%#$% Run Package w/integrated list
ECHO. Examples-
ECHO. %#@%-imagemgr -run -list "x y z.list" -live%#$%
ECHO. %#@%-imagemgr -run -pkx x.pkx -vhdx x.vhdx%#$%
ECHO. %#@%-imagemgr -run -item "[EXTPACKAGE][x y z.appx][INSTALL][IA]" -vhdx x.vhdx%#$%
ECHO. %##%File Management%#$%
ECHO. -filemgr -grant %#@%file/folder%#$% Take ownership + Grant Permissions
ECHO. Examples-
ECHO. %#@%-filemgr -grant c:\x.txt%#$%
ECHO. %##%Disk Management%#$%
ECHO. -diskmgr -list Condensed list of disks
ECHO. -diskmgr -inspect -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% DiskPart inquiry on specified disk
ECHO. -diskmgr -erase -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% Delete all partitions on specified disk
ECHO. -diskmgr -create -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% -size %#@%MB%#$% Create NTFS partition on specified disk
ECHO. -diskmgr -format -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% -part %#@%#%#$% Format partition w/NTFS on specified disk
ECHO. -diskmgr -delete -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% -part %#@%#%#$% Delete partition on specified disk
ECHO. -diskmgr -changeuid -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% %#@%new-uid%#$% Change disk uid of specified disk
ECHO. -diskmgr -mount -disk %#@%#%#$% /or/ -diskuid %#@%uid%#$% -part %#@%#%#$% -letter %#@%letter%#$% Assign drive letter
ECHO. -diskmgr -unmount -letter %#@%letter%#$% Remove drive letter
ECHO. -diskmgr -mount -vhdx %#@%x.vhdx%#$% -letter %#@%letter%#$% Mount virtual disk
ECHO. Examples-
ECHO. %#@%-diskmgr -create -disk 0 -size 25000%#$%
ECHO. %#@%-diskmgr -mount -disk 0 -part 1 -letter e%#$%
ECHO. %#@%-diskmgr -unmount -letter e%#$%
ECHO. %##%Boot Creator%#$%
ECHO. -bootmaker -create -disk %#@%#%#$% -vhdx %#@%x.vhdx%#$% Erase specified disk and make bootable
ECHO. -bootmaker -create -diskuid %#@%uid%#$% -vhdx %#@%x.vhdx%#$% -size %#@%MB%#$% Erase specified disk and make bootable + set host partition size
ECHO. Examples-
ECHO. %#@%-bootmaker -create -disk 0 -vhdx x.vhdx%#$% Default is the entire disk when size is not specified
ECHO. %#@%-bootmaker -create -diskuid 12345678-1234-1234-1234-123456781234 -vhdx x.vhdx -size 100000%#$%
ECHO.&&PAUSE
EXIT /B
:DISCLAIMER
CLS&&CALL:PAD_LINE&&CALL:BOXT1
ECHO. %XLR2%DISCLAIMER%#$%&&ECHO.
ECHO. It's recommended to backup your data before making any changes
ECHO. to the live operating system or performing disk partitioning.
ECHO. Running this tool on a host-OS language other than english
ECHO. can cause serious malfunctions and is not recommended.
ECHO.
ECHO. The user assumes liability for loss relating to the use of this tool.
ECHO.&&ECHO. Do You Agree? (%##%Y%#$%/%##%N%#$%)
ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&SET "PROMPT_SET=ACCEPTX"&&CALL:PROMPT_SET
IF "%ACCEPTX%"=="Y" SET "DISCLAIMER=ACCEPTED"
IF NOT "%DISCLAIMER%"=="ACCEPTED" CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. The ( %##%@%#$% ) %##%Current Environment%#$% option ^& disk management area&&ECHO. are the 'caution zones' and can be avoided if unsure.&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAUSED
EXIT /B
::#########################################################################
:SETTINGS_MENU
::#########################################################################
CLS&&CALL:SETS_HANDLER&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Settings Configuration&&ECHO.
ECHO. (%##%1%#$%) Appearance&&ECHO. (%##%2%#$%) Shortcuts&&ECHO. (%##%3%#$%) Compression %#@%%COMPRESS%%#$%&&ECHO. (%##%4%#$%) Folder Layout %#@%%FOLDER_MODE%%#$%&&ECHO. (%##%5%#$%) Current Environment %#@%%ALLOW_ENV%%#$%&&IF "%PROG_MODE%"=="RAMDISK" ECHO. (%##%6%#$%) Host Hide %#@%%HOST_HIDE%%#$%&&ECHO. (%##%7%#$%) Update
ECHO. (%##%@%#$%) Clear Settings&&ECHO. (%##%*%#$%) %XLR2%Enable Custom Menu%#$%&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE
CALL:PAD_PREV&&CALL:MENU_SELECT
IF DEFINED HOST_ERROR GOTO:MAIN_MENU
IF NOT DEFINED SELECT GOTO:MAIN_MENU
IF "%SELECT%"=="*" GOTO:MENU_LIST
IF "%SELECT%"=="@" CALL:SETS_CLEAR&SET "SELECT="
IF "%SELECT%"=="1" GOTO:APPEARANCE
IF "%SELECT%"=="2" GOTO:SHORTCUTS
IF "%SELECT%"=="3" CALL:COMPRESS_LVL&SET "SELECT="
IF "%SELECT%"=="4" CALL:FOLDER_MODE&SET "SELECT="
IF "%SELECT%"=="5" IF NOT "%DISCLAIMER%"=="ACCEPTED" CALL:DISCLAIMER
IF "%SELECT%"=="5" IF "%DISCLAIMER%"=="ACCEPTED" IF NOT "%ALLOW_ENV%"=="ENABLED" SET "ALLOW_ENV=ENABLED"&&SET "SELECT="
IF "%SELECT%"=="5" IF "%DISCLAIMER%"=="ACCEPTED" IF NOT "%ALLOW_ENV%"=="DISABLED" SET "ALLOW_ENV=DISABLED"&&SET "SELECT="
IF "%SELECT%"=="6" IF "%PROG_MODE%"=="RAMDISK" IF "%HOST_HIDE%"=="DISABLED" SET "HOST_HIDE=ENABLED"&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. The vhdx host partition will be hidden upon exit.&&ECHO. Boot into recovery to revert.&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAUSED&SET "SELECT="
IF "%SELECT%"=="6" IF "%PROG_MODE%"=="RAMDISK" IF "%HOST_HIDE%"=="ENABLED" SET "HOST_HIDE=DISABLED"&&SET "SELECT="
IF "%SELECT%"=="7" IF "%PROG_MODE%"=="RAMDISK" GOTO:UPDATE_RECOVERY
GOTO:SETTINGS_MENU
:MENU_LIST
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. %XLR2%Attention:%#$% This is an advanced feature.&&ECHO. Proceeding will load a list instead of the main menu.&&ECHO.&&ECHO. Press (%##%X%#$%) to proceed&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "PROMPT_SET=SELECTX"&&CALL:PROMPT_SET
IF NOT "%SELECTX%"=="X" GOTO:SETTINGS_MENU
SET "MENUT0= Custom Main Menu"&&SET "MENUT1= "&&SET "MENUT2= %#@%AVAILABLE LISTs:%#$%"&&SET "MENUT3= "&&SET "MENUT4= ( %##%.%#$% ) Create new template"&&SET "MENUB0= "&&SET "PICK=LIST"&&CALL:FILE_PICK
IF "%SELECT%"=="." CALL:MENU_TEMPLATE
IF DEFINED $PICK SET "MENU_LIST=%$CHOICE%"&&SET "MENU_MODE=CUSTOM"&&ECHO.&&ECHO. Using %#@%%$CHOICE%%#$% instead of the main menu.&&ECHO.&&CALL:PAUSED&GOTO:CUSTOM_MODE
GOTO:SETTINGS_MENU
:MENU_TEMPLATE
CLS&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Custom Main Menu Template&&ECHO.&&ECHO. (%##%1%#$%) Multi-List&&ECHO. (%##%2%#$%) Exec-List&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "PROMPT_SET=SELECTX"&&CALL:PROMPT_SET
IF NOT "%SELECTX%"=="1" IF NOT "%SELECTX%"=="2" EXIT /B
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter name of new .LIST&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "PROMPT_SET=NEW_NAME"&&SET "PROMPT_ANY=1"&&SET "NO_ASTRK=1"&&CALL:PROMPT_SET
IF NOT DEFINED NEW_NAME EXIT /B
SET "$PICK=%LIST_FOLDER%\%NEW_NAME%.list"&&SET "$CHOICE=%NEW_NAME%.list"
IF "%SELECTX%"=="1" (ECHO.MULTI-LIST&&ECHO.This is an example of a custom menu for recovery.&&ECHO.Set a custom banner in settings.ini.&&ECHO.&&ECHO.[GROUP][Recovery Operation Example][Restore a wim to vhdx]&&ECHO.[COMMANDQ][IF EXIST "%%IMAGE_FOLDER%%\active_xyz.vhdx" ECHO.Deleting active_xyz.vhdx...%%+%%DEL /Q /F "%%IMAGE_FOLDER%%\active_xyz.vhdx"%%}%%NUL][CMD][IA]&&ECHO.[COMMAND][%%PROG_SOURCE%%\windick.cmd -imageproc -wim "backup_xyz.wim" -index 1 -vhdx "active_xyz.vhdx" -size 25000][CMD][IA]&&ECHO.[GROUP][Recovery Operation Example][Backup a vhdx to wim]&&ECHO.[COMMANDQ][IF EXIST "%%IMAGE_FOLDER%%\backup_xyz.wim" ECHO.Deleting backup_xyz.wim...%%+%%DEL /Q /F "%%IMAGE_FOLDER%%\backup_xyz.wim"%%}%%NUL][CMD][IA]&&ECHO.[COMMAND][%%PROG_SOURCE%%\windick.cmd -imageproc -vhdx "active_xyz.vhdx" -index 1 -wim "backup_xyz.wim" -xlvl fast][CMD][IA]&&ECHO.[GROUP][Recovery Operation Example][Restore a wim to vhdx with name prompt]&&ECHO.[$1][ Enter new vhdx name: 0-9 A-Z - No Spaces][VAR1]&&ECHO.[COMMANDQ][IF EXIST "%%IMAGE_FOLDER%%\%%VAR1%%.vhdx" ECHO.Deleting %%VAR1%%.vhdx...%%+%%DEL /Q /F "%%IMAGE_FOLDER%%\%%VAR1%%.vhdx"%%}%%NUL][CMD][IA]&&ECHO.[COMMAND][%%PROG_SOURCE%%\windick.cmd -imageproc -wim "backup_xyz.wim" -index 1 -vhdx "%%VAR1%%.vhdx" -size 25000][CMD][IA]&&ECHO.&&ECHO.[GROUP][Open an app Example][Notepad]&&ECHO.[COMMAND][start notepad.exe][CMD][IA]&&ECHO.[GROUP][Open an app Example][Regedit]&&ECHO.[COMMAND][start regedit.exe][CMD][IA])>"%$PICK%"
IF "%SELECTX%"=="2" (ECHO.EXEC-LIST&&ECHO.This is an example of an execution list for recovery. A reboot to restore scenerio.&&ECHO.[COMMANDQ][IF EXIST "Z:\$\active_xyz.vhdx" ECHO.Deleting active_xyz.vhdx...%%+%%DEL /f "Z:\$\active_xyz.vhdx"][CMD][IA]&&ECHO.[COMMAND][%%PROG_SOURCE%%\windick.cmd -imageproc -wim "backup_xyz.wim" -index 1 -vhdx "active_xyz.vhdx" -size 25000][CMD][IA]&&ECHO.[COMMANDQ][REM %%PROG_SOURCE%%\windick.cmd -nextboot -vhdx][CMD][IA]&&ECHO.[COMMANDQ][PAUSE][CMD][IA])>"%$PICK%"
START NOTEPAD.EXE "%$PICK%"
EXIT /B
:APPEARANCE
CLS&&CALL:SETS_HANDLER&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Appearance&&ECHO.
ECHO. (%##%1%#$%) Pad Type %#@%PAD %PAD_TYPE%%#$%&&ECHO. (%##%2%#$%) Pad Size %#@%%PAD_SIZE%%#$%&&ECHO. (%##%7%#$%) Pad Box %#@%%PAD_BOX%%#$%&&ECHO. (%##%3%#$%) Pad Sequence %#@%%PAD_SEQ%%#$%&&CALL ECHO. (%##%4%#$%) Text Color %#@%COLOR %%XLR%TXT_COLOR%%%%TXT_COLOR%%#$%&&CALL ECHO. (%##%5%#$%) Accent Color %#@%COLOR %%XLR%ACC_COLOR%%%%ACC_COLOR%%#$%&&CALL ECHO. (%##%6%#$%) Button Color %#@%COLOR %%XLR%BTN_COLOR%%%%BTN_COLOR%%#$%&&ECHO.&&ECHO. Color ( %##%-%#$% / %##%+%#$% ) Shift&&CALL:BOXB1&&CALL:PAD_LINE
CALL:PAD_PREV&&CALL:MENU_SELECT
IF DEFINED HOST_ERROR GOTO:MAIN_MENU
IF NOT DEFINED SELECT GOTO:SETTINGS_MENU
IF "%SELECT%"=="+" CALL:COLOR_SHIFT_TXT&SET "SELECT="
IF "%SELECT%"=="-" CALL:COLOR_SHIFT_PAD&SET "SELECT="
IF "%SELECT%"=="1" CALL:PAD_TYPE&SET "SELECT="
IF "%SELECT%"=="2" IF "%PAD_SIZE%"=="LARGE" SET "PAD_SIZE=SMALL"&SET "SELECT="
IF "%SELECT%"=="2" IF "%PAD_SIZE%"=="SMALL" SET "PAD_SIZE=LARGE"&SET "SELECT="
IF "%SELECT%"=="3" CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter 10 digit color sequence seed&&ECHO.&&ECHO. [ %XLR0%0%XLR1%1%XLR2%2%XLR3%3%XLR4%4%XLR5%5%XLR6%6%XLR7%7%XLR8%8%XLR9%9%#$% ] [ %XLR1%11%XLR2%22%XLR3%33%XLR4%44%XLR5%55%#$% ]&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&SET "PROMPT_SET=COLOR_XXX"&&CALL:PROMPT_SET
IF "%SELECT%"=="3" IF "%COLOR_XXX%"=="-" SET "PAD_SEQ=6666600000"&SET "SELECT="
IF "%SELECT%"=="3" SET "XNTX="&&FOR /F "DELIMS=" %%G IN ('CMD.EXE /D /U /C ECHO.%COLOR_XXX%^| FIND /V ""') do (CALL SET /A XNTX+=1)
IF "%SELECT%"=="3" IF "%XNTX%"=="10" SET "PAD_SEQ=%COLOR_XXX%"&&SET "COLOR_XXX="&SET "SELECT="
IF "%SELECT%"=="4" SET "COLOR_TMP=TXT_COLOR"&&CALL:COLOR_CHOICE&SET "SELECT="
IF "%SELECT%"=="5" SET "COLOR_TMP=ACC_COLOR"&&CALL:COLOR_CHOICE&SET "SELECT="
IF "%SELECT%"=="6" SET "COLOR_TMP=BTN_COLOR"&&CALL:COLOR_CHOICE&SET "SELECT="
IF "%SELECT%"=="7" IF "%PAD_BOX%"=="DISABLED" SET "PAD_BOX=ENABLED"&SET "SELECT="
IF "%SELECT%"=="7" IF "%PAD_BOX%"=="ENABLED" SET "PAD_BOX=DISABLED"&SET "SELECT="
GOTO:APPEARANCE
:PAD_TYPE
IF NOT DEFINED CHCP_OLD FOR /F "TOKENS=2 DELIMS=:" %%a IN ('CHCP') DO SET "CHCP_OLD=%%a"
CHCP 65001 >NUL
CLS&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Choose a pad type&&ECHO.&&ECHO. (%##%0%#$%)None (%##%1%#$%)◌ (%##%2%#$%)○ (%##%3%#$%)● (%##%4%#$%)□ (%##%5%#$%)■ (%##%6%#$%)░ (%##%7%#$%)▒ (%##%8%#$%)▓ (%##%9%#$%)~ (%##%10%#$%)= (%##%11%#$%)#&&CHCP %CHCP_OLD% >NUL
ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "PROMPT_SET=SELECTX"&&CALL:PROMPT_SET
FOR %%a in (0 1 2 3 4 5 6 7 8 9 10 11) DO (IF "%SELECTX%"=="%%a" SET "PAD_TYPE=%SELECTX%")
EXIT /B
:COLOR_CHOICE
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Choose a color&&ECHO.&&ECHO. [ %XLR0% 0 %XLR1% 1 %XLR2% 2 %XLR3% 3 %XLR4% 4 %XLR5% 5 %XLR6% 6 %XLR7% 7 %XLR8% 8 %XLR9% 9 %#$% ]&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "PROMPT_SET=SELECTX"&&CALL:PROMPT_SET
FOR %%a in (0 1 2 3 4 5 6 7 8 9) DO (IF "%SELECTX%"=="%%a" SET "%COLOR_TMP%=%SELECTX%")
SET "COLOR_TMP="&&EXIT /B
:COLOR_SHIFT_PAD
FOR /F "DELIMS=" %%G in ('CMD.EXE /D /U /C ECHO.%PAD_SEQ%^| FIND /V ""') do (SET "XXX_XXX=%%G"&&SET /A "PAD_XNT+=1"&&CALL:PAD_XNT)
SET "PAD_SEQ=%PAD_SHIFT%"&&FOR %%a in (PAD_SHIFT PAD_XNT XXX_XXX) DO (SET "%%a=")
EXIT /B
:COLOR_SHIFT_TXT
FOR %%a in (TXT_COLOR ACC_COLOR BTN_COLOR) DO (SET /A "%%a+=1")
IF "%TXT_COLOR%"=="10" SET "TXT_COLOR=0"
IF "%ACC_COLOR%"=="10" SET "ACC_COLOR=0"
IF "%BTN_COLOR%"=="10" SET "BTN_COLOR=0"
EXIT /B
:PAD_XNT
IF %PAD_XNT% GTR 10 EXIT /B
SET /A "XXX_XXX+=1"&&IF "%XXX_XXX%"=="9" SET "XXX_XXX=0"
SET "PAD_SHIFT=%PAD_SHIFT%%XXX_XXX%"
EXIT /B
:COMPRESS_LVL
IF "%COMPRESS%"=="FAST" SET "COMPRESS=MAX"&&EXIT /B
IF "%COMPRESS%"=="MAX" SET "COMPRESS=FAST"&&EXIT /B
EXIT /B
:SHORTCUTS
CLS&&CALL:SETS_HANDLER&&CALL:CLEAN&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Shortcuts&&ECHO.
FOR %%a in (1 2 3 4 5) DO (CALL ECHO. Slot ^(%##%%%a%#$%^) ^(%##%%%HOTKEY_%%a%%%#$%^) %#@%%%SHORT_%%a%%%#$%)
ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "CHECK=MOST"&&CALL:MENU_SELECT
IF DEFINED HOST_ERROR GOTO:MAIN_MENU
IF NOT DEFINED SELECT GOTO:SETTINGS_MENU
IF DEFINED SELECT CALL:SHORTCUT_RUN
SET "SHORT_SET="&&FOR %%a in (1 2 3 4 5) DO (IF "%SELECT%"=="%%a" SET "SHORT_SET=1"&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter command&&SET "PROMPT_SET=SHORT_%SELECT%"&&SET "PROMPT_ANY=1"&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PROMPT_SET&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter 3+ digit hotkey&&SET "PROMPT_SET=HOTKEY_%SELECT%"&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PROMPT_SET&&SET "SHORT_XNT=0"&&FOR /F "DELIMS=" %%G in ('CALL CMD.EXE /D /U /C ECHO.%%HOTKEY_%SELECT%%%^| FIND /V ""') do (CALL SET /A "SHORT_XNT+=1"))
IF DEFINED SHORT_SET IF NOT "%SHORT_XNT%" GEQ "3" SET "HOTKEY_%SELECT%="&&SET "SHORT_%SELECT%="
GOTO:SHORTCUTS
:SHORTCUT_RUN
IF "%SELECT%"=="%HOTKEY_1%" SET "SHORT_RUN=%SHORT_1%"
IF "%SELECT%"=="%HOTKEY_2%" SET "SHORT_RUN=%SHORT_2%"
IF "%SELECT%"=="%HOTKEY_3%" SET "SHORT_RUN=%SHORT_3%"
IF "%SELECT%"=="%HOTKEY_4%" SET "SHORT_RUN=%SHORT_4%"
IF "%SELECT%"=="%HOTKEY_5%" SET "SHORT_RUN=%SHORT_5%"
IF NOT DEFINED SHORT_RUN EXIT /B
CALL START %SHORT_RUN%
SET "SHORT_RUN="&&EXIT /B
:AUTOBOOT_SVC
CALL:GET_NEXTBOOT
IF NOT DEFINED BOOT_OK ECHO. %XLR4%ERROR:%#$% The boot environment is not installed on this system.&&EXIT /B
IF "%BOOTSVC%"=="INSTALL" ECHO. Recovery switcher service is installed.&&SC CREATE AutoBoot binpath="%WinDir%\SYSTEM32\CMD.EXE /C BCDEDIT.EXE /displayorder %GUID_TMP% /addfirst" start=auto>NUL 2>&1
IF "%BOOTSVC%"=="REMOVE" ECHO.Recovery switcher service is removed.&&SC DELETE AutoBoot>NUL 2>&1
SET "BOOTSVC="&&EXIT /B
:UPDATE_RECOVERY
SET "PROG_NAME=windick"&&CLS&&CALL:SETS_HANDLER&&CALL:GET_SPACE&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Recovery Update&&ECHO.&&ECHO. (%##%1%#$%) Program (%##%*%#$%) Test&&ECHO. (%##%2%#$%) Recovery Wallpaper&&ECHO. (%##%3%#$%) Recovery Password&&ECHO. (%##%4%#$%) Boot Media&&ECHO. (%##%5%#$%) Host Folder&&ECHO. (%##%6%#$%) EFI Files&&ECHO. (%##%7%#$%) Settings.ini&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&CALL:MENU_SELECT
IF DEFINED HOST_ERROR GOTO:MAIN_MENU
IF NOT DEFINED SELECT GOTO:SETTINGS_MENU
IF "%SELECT%"=="*" IF EXIST "%PROG_SOURCE%\%PROG_NAME%.cmd" SET "VER_GET=%PROG_SOURCE%\%PROG_NAME%.cmd"&&CALL:GET_PROGVER&© /Y "%PROG_SOURCE%\%PROG_NAME%.cmd" "%PROG_FOLDER%"&GOTO:MAIN_MENU
SET "$GO="&&FOR %%a in (1 2 3 4 5 6 7) DO (IF "%SELECT%"=="%%a" SET "$GO=1")
IF NOT DEFINED $GO GOTO:UPDATE_RECOVERY
FOR %%a in (0 1 2 3 4 5 ERROR) DO (IF "%FREE%"=="%%a" ECHO. %XLR2%ERROR:%#$% Not enough free space. Clear some space and try again. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END)
IF "%SELECT%"=="1" SET "UPDATE_TYPE=PROG"
IF "%SELECT%"=="2" SET "UPDATE_TYPE=WALL"
IF "%SELECT%"=="3" SET "UPDATE_TYPE=PASS"
IF "%SELECT%"=="4" SET "UPDATE_TYPE=BOOT"
IF "%SELECT%"=="5" SET "UPDATE_TYPE=HOST"
IF "%SELECT%"=="6" SET "UPDATE_TYPE=EFI"
IF "%SELECT%"=="7" SET "UPDATE_TYPE=SETS"
IF "%UPDATE_TYPE%"=="SETS" CLS&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Default Settings&&ECHO.&&ECHO. (%##%1%#$%) Replace settings.ini&&ECHO. (%##%2%#$%) Remove settings.ini&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&CALL:MENU_SELECT
IF "%UPDATE_TYPE%"=="SETS" IF NOT "%SELECT%"=="1" IF NOT "%SELECT%"=="2" GOTO:UPDATE_RECOVERY
IF "%UPDATE_TYPE%"=="SETS" IF "%SELECT%"=="1" SET "UPDATE_TYPE=CONFIG"
IF "%UPDATE_TYPE%"=="SETS" IF "%SELECT%"=="2" SET "UPDATE_TYPE=DEL_CONFIG"
IF "%UPDATE_TYPE%"=="CONFIG" IF NOT EXIST "%PROG_SOURCE%\settings.ini" ECHO. %XLR4%ERROR:%#$% File settings.ini is not located in folder. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="EFI" IF NOT EXIST "%BOOT_FOLDER%\boot.sdi" IF NOT EXIST "%BOOT_FOLDER%\bootmgfw.efi" ECHO. %XLR4%ERROR:%#$% Files boot.sdi and bootmgfw.efi are not located in folder. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="BOOT" IF NOT EXIST "%BOOT_FOLDER%\boot.sav" ECHO. %XLR4%ERROR:%#$% File boot.sav is not located in folder. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="PROG" IF NOT EXIST "%PROG_SOURCE%\%PROG_NAME%.cmd" ECHO. %XLR4%ERROR:%#$% File %PROG_NAME%.cmd is not located in folder. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="PROG" SET "VER_GET=%PROG_SOURCE%\%PROG_NAME%.cmd"&&SET "VER_SET=VER_X"&&CALL:GET_PROGVER
IF "%UPDATE_TYPE%"=="PROG" SET "VER_GET=%PROG_FOLDER%\%PROG_NAME%.cmd"&&SET "VER_SET=VER_Y"&&CALL:GET_PROGVER
IF "%UPDATE_TYPE%"=="PROG" IF DEFINED ERROR ECHO. %XLR2%ERROR:%#$% File %PROG_NAME%.cmd is corrupt. Abort.&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="PASS" CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. %XLR4%Important:%#$% Do not use any of these symbols [%XLR2% ^< ^> %% ^^! ^& ^^^^ %#$%].&&ECHO.&&ECHO. Enter new recovery password&&ECHO. Press (%##%.%#$%) to remove the recovery password&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&SET "PROMPT_SET=RECOVERY_LOCK"&&SET "PROMPT_ANY=1"&&SET "CHECK=MOST"&&SET "VERBOSE=1"&&CALL:PROMPT_SET
IF "%UPDATE_TYPE%"=="PASS" IF DEFINED ERROR CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="PASS" IF "%RECOVERY_LOCK%"=="." SET "RECOVERY_LOCK="
IF "%UPDATE_TYPE%"=="WALL" CALL:PE_WALLPAPER
IF "%UPDATE_TYPE%"=="WALL" IF NOT DEFINED $PICK SET "ERROR=1"&&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="HOST" CALL:HOST_FOLDER
IF "%UPDATE_TYPE%"=="HOST" IF DEFINED ERROR GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="HOST" IF EXIST "Z:\%HOST_FOLDER%" ECHO. %XLR2%ERROR:%#$% Host folder %#@%%HOST_FOLDER%%#$% already exists. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="HOST" REN "Z:\%HOST_FOLDERX%" "%HOST_FOLDER%">NUL 2>&1
IF "%UPDATE_TYPE%"=="HOST" IF NOT EXIST "Z:\%HOST_FOLDER%" ECHO. %XLR2%ERROR:%#$% Host folder is currently in use. Abort.&&SET "ERROR=1"&&CALL:PAUSED&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="HOST" REN "Z:\%HOST_FOLDER%" "%HOST_FOLDERX%">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" SET "PATH_X=%SYSTEMDRIVE%"&&CALL:GET_PATHINFO&MOVE /Y "%BOOT_FOLDER%\boot.sav" "%BOOT_FOLDER%\$BOOT.wim">NUL
IF "%UPDATE_TYPE%"=="BOOT" SET "INDEX_WORD=Setup"&&SET "IMAGE_X=%BOOT_FOLDER%\$BOOT.wim"&&CALL:GET_WIMINDEX
IF "%UPDATE_TYPE%"=="BOOT" IF NOT DEFINED INDEX_Z SET "INDEX_Z=1"
IF "%UPDATE_TYPE%"=="BOOT" SET "IMAGE_X=%BOOT_FOLDER%\$BOOT.wim"&&SET "INDEX_X=%INDEX_Z%"&&CALL:GET_IMAGEINFO
IF "%UPDATE_TYPE%"=="BOOT" MOVE /Y "%BOOT_FOLDER%\$BOOT.wim" "%BOOT_FOLDER%\boot.sav">NUL
IF "%UPDATE_TYPE%"=="BOOT" IF DEFINED ERROR ECHO. %XLR2%ERROR:%#$% File boot.sav is corrupt. Abort.&&CALL:PAUSED&GOTO:UPDATE_END
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.
IF "%UPDATE_TYPE%"=="DEL_CONFIG" ECHO. This will remove the default settings.ini file.
IF "%UPDATE_TYPE%"=="CONFIG" ECHO. This will replace the default settings.ini file.
IF "%UPDATE_TYPE%"=="EFI" ECHO. This will replace the current EFI boot files.
IF "%UPDATE_TYPE%"=="BOOT" ECHO. This will replace %#@%v%$PATHVER%%#$% with %#@%v%$IMGVER%%#$%
IF "%UPDATE_TYPE%"=="PROG" ECHO. This will replace %#@%v%VER_Y%%#$% with %#@%v%VER_X%%#$%.
IF "%UPDATE_TYPE%"=="PASS" IF DEFINED RECOVERY_LOCK ECHO. Recovery password will be changed to %#@%%RECOVERY_LOCK%%#$%.
IF "%UPDATE_TYPE%"=="PASS" IF NOT DEFINED RECOVERY_LOCK ECHO. Recovery password will be cleared.
IF "%UPDATE_TYPE%"=="WALL" ECHO. This will replace the recovery background.
IF "%UPDATE_TYPE%"=="HOST" ECHO. Host folder will be changed to %#@%%HOST_FOLDER%%#$%.&&ECHO. %XLR4%NOTE:%#$% The boot menu will need to be configured next boot.
ECHO.&&CALL:BOXB1&&CALL:CONFIRM
IF NOT "%CONFIRM%"=="X" SET "ERROR=1"&&GOTO:UPDATE_END
SET "REBOOT_MAN=1"&&CLS&&CALL:BOXT2&&ECHO. %XLR4%Recovery update has been initiated.%#$%&&ECHO. %XLR2%Caution:%#$% Interrupting this process can render the disk unbootable.&&ECHO.
CALL:EFI_MOUNT
IF DEFINED ERROR GOTO:UPDATE_END
SET "GET_SIZE=MB"&&SET "INPUT=%EFI_LETTER%:"&&SET "OUTPUT=EFI_FREE"&&CALL:GET_FREE
IF NOT DEFINED ERROR SET "GET_SIZE=MB"&&SET "INPUT=%EFI_LETTER%:\$.WIM"&&SET "OUTPUT=BOOT_X"&&CALL:GET_FILESIZE
IF NOT DEFINED ERROR SET /A "EFI_FREE+=%BOOT_X%"
IF DEFINED ERROR ECHO. %XLR2%ERROR:%#$% Unable to get file size or free space. Abort.&&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="EFI" IF EXIST "%BOOT_FOLDER%\boot.sdi" ECHO. Using boot.sdi located in folder, for efi image boot support.&© /Y "%BOOT_FOLDER%\boot.sdi" "%EFI_LETTER%:\Boot">NUL
IF "%UPDATE_TYPE%"=="EFI" IF EXIST "%BOOT_FOLDER%\bootmgfw.efi" ECHO. Using bootmgfw.efi located in folder, for the efi bootloader.&© /Y "%BOOT_FOLDER%\bootmgfw.efi" "%EFI_LETTER%:\EFI\Boot\bootx64.efi">NUL
IF "%UPDATE_TYPE%"=="EFI" FOR %%a in (boot.sdi bootmgfw.efi) DO (IF NOT EXIST "%BOOT_FOLDER%\%%a" ECHO. File %%a is not located in folder, skipping.)
IF "%UPDATE_TYPE%"=="EFI" ECHO. Unmounting EFI...&&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
CALL:VTEMP_CREATE
IF DEFINED ERROR CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
ECHO. Extracting boot-media...
IF "%UPDATE_TYPE%"=="BOOT" MOVE /Y "%BOOT_FOLDER%\boot.sav" "%BOOT_FOLDER%\$BOOT.wim">NUL
IF "%UPDATE_TYPE%"=="BOOT" SET "INDEX_WORD=Setup"&&SET "IMAGE_X=%BOOT_FOLDER%\$BOOT.wim"&&CALL:GET_WIMINDEX
IF NOT DEFINED INDEX_Z SET "INDEX_Z=1"
IF NOT "%UPDATE_TYPE%"=="BOOT" DISM /ENGLISH /APPLY-IMAGE /IMAGEFILE:"%EFI_LETTER%:\$.WIM" /INDEX:1 /APPLYDIR:"%VDISK_LTR%:"&ECHO.&SET "INDEX_Z="
IF "%UPDATE_TYPE%"=="BOOT" DISM /ENGLISH /APPLY-IMAGE /IMAGEFILE:"%BOOT_FOLDER%\$BOOT.wim" /INDEX:%INDEX_Z% /APPLYDIR:"%VDISK_LTR%:"&ECHO.&SET "INDEX_Z="
IF "%UPDATE_TYPE%"=="BOOT" MOVE /Y "%BOOT_FOLDER%\$BOOT.wim" "%BOOT_FOLDER%\boot.sav">NUL
IF NOT EXIST "%VDISK_LTR%:\Windows" ECHO. %XLR2%ERROR:%#$% BOOT MEDIA&&ECHO. Unmounting EFI...&&SET "ERROR=1"&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
IF "%UPDATE_TYPE%"=="BOOT" MD "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%PROG_FOLDER%\%PROG_NAME%.cmd" "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%PROG_FOLDER%\HOST_TARGET" "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%PROG_FOLDER%\HOST_FOLDER" "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%WINDIR%\System32\setup.bmp" "%VDISK_LTR%:\Windows\System32">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" IF NOT EXIST "%PROG_FOLDER%\SETTINGS_INI" DEL /Q /F "\\?\%VDISK_LTR%:\$\SETTINGS_INI">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" IF NOT EXIST "%PROG_FOLDER%\RECOVERY_LOCK" DEL /Q /F "\\?\%VDISK_LTR%:\$\RECOVERY_LOCK">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" IF EXIST "%PROG_FOLDER%\SETTINGS_INI" COPY /Y "%PROG_FOLDER%\SETTINGS_INI" "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" IF EXIST "%PROG_FOLDER%\RECOVERY_LOCK" COPY /Y "%PROG_FOLDER%\RECOVERY_LOCK" "%VDISK_LTR%:\$">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" IF EXIST "%VDISK_LTR%:\setup.exe" DEL /Q /F "\\?\%VDISK_LTR%:\setup.exe">NUL 2>&1
::IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%VDISK_LTR%:\Windows\Boot\DVD\EFI\boot.sdi" "%EFI_LETTER%:\Boot">NUL 2>&1
::IF "%UPDATE_TYPE%"=="BOOT" COPY /Y "%VDISK_LTR%:\Windows\Boot\EFI\bootmgfw.efi" "%EFI_LETTER%:\EFI\Boot\bootx64.efi">NUL 2>&1
IF "%UPDATE_TYPE%"=="BOOT" (ECHO.[LaunchApp]&&ECHO.AppPath=X:\$\%PROG_NAME%.cmd)>"%VDISK_LTR%:\Windows\System32\winpeshl.ini"
IF "%UPDATE_TYPE%"=="BOOT" ECHO. Updating boot media %#@%v%$PATHVER%%#$% to %#@%v%$IMGVER%%#$%.
IF "%UPDATE_TYPE%"=="DEL_CONFIG" ECHO. Removing the default settings.ini file.&&DEL /Q /F "\\?\%VDISK_LTR%:\$\SETTINGS_INI">NUL 2>&1
IF "%UPDATE_TYPE%"=="CONFIG" ECHO. Updating the default settings.ini file.&© /Y "%PROG_SOURCE%\settings.ini" "%VDISK_LTR%:\$\SETTINGS_INI">NUL
IF "%UPDATE_TYPE%"=="PROG" ECHO. Updating %PROG_NAME%.cmd %#@%v%VER_Y%%#$% to %#@%v%VER_X%%#$%.&© /Y "%PROG_SOURCE%\%PROG_NAME%.cmd" "%VDISK_LTR%:\$">NUL
IF "%UPDATE_TYPE%"=="PASS" IF DEFINED RECOVERY_LOCK ECHO. Recovery password will be changed to %#@%%RECOVERY_LOCK%%#$%.&&ECHO.%RECOVERY_LOCK%>"%VDISK_LTR%:\$\RECOVERY_LOCK"
IF "%UPDATE_TYPE%"=="PASS" IF NOT DEFINED RECOVERY_LOCK ECHO. Recovery password will be cleared.&&DEL /Q /F "\\?\%VDISK_LTR%:\$\RECOVERY_LOCK">NUL 2>&1
IF "%UPDATE_TYPE%"=="WALL" ECHO. Using %PE_WALLPAPER% located in folder for the recovery wallpaper.
IF "%UPDATE_TYPE%"=="WALL" TAKEOWN /F "%VDISK_LTR%:\Windows\System32\setup.bmp">NUL 2>&1
IF "%UPDATE_TYPE%"=="WALL" ICACLS "%VDISK_LTR%:\Windows\System32\setup.bmp" /grant %USERNAME%:F>NUL 2>&1
IF "%UPDATE_TYPE%"=="WALL" COPY /Y "%CACHE_FOLDER%\%PE_WALLPAPER%" "%VDISK_LTR%:\Windows\System32\setup.bmp">NUL 2>&1
IF "%UPDATE_TYPE%"=="HOST" ECHO. Host folder will be changed to %#@%%HOST_FOLDER%%#$%.&&ECHO.%HOST_FOLDER%>"%VDISK_LTR%:\$\HOST_FOLDER"
ECHO. Saving boot-media...&&DISM /ENGLISH /CAPTURE-IMAGE /CAPTUREDIR:"%VDISK_LTR%:" /IMAGEFILE:"%PROG_SOURCE%\$TEMP.wim" /COMPRESS:%COMPRESS% /NAME:"WindowsPE" /CheckIntegrity /Verify /Bootable&ECHO.
SET "IMAGE_X=%PROG_SOURCE%\$TEMP.wim"&&SET "INDEX_X=1"&&CALL:GET_IMAGEINFO
IF DEFINED ERROR ECHO. %XLR2%ERROR:%#$% File boot.sav is corrupt. Abort.&&ECHO. Unmounting EFI...&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
SET "GET_SIZE=MB"&&SET "INPUT=%PROG_SOURCE%\$TEMP.wim"&&SET "OUTPUT=BOOT_X"&&CALL:GET_FILESIZE
IF DEFINED ERROR ECHO. %XLR2%ERROR:%#$% Unable to get file size or free space. Abort.&&ECHO. Unmounting EFI...&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
CALL:GET_SPACE&&FOR %%a in (EFI_FREE BOOT_X) DO (IF NOT DEFINED %%a SET "%%a=0")
IF %EFI_FREE% LEQ %BOOT_X% ECHO. %XLR2%ERROR:%#$% File boot.sav %BOOT_X%MB exceeds %EFI_FREE%MB. Abort.&&ECHO. Unmounting EFI...&&SET "ERROR=1"&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END
FOR %%a in (0 ERROR) DO (IF "%FREE%"=="%%a" ECHO. %XLR2%ERROR:%#$% Not enough free space. Clear some space and try again. Abort.&&ECHO. Unmounting EFI...&&SET "ERROR=1"&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT&GOTO:UPDATE_END)
DEL /Q /F "%EFI_LETTER%:\$.WIM">NUL 2>&1
MOVE /Y "%PROG_SOURCE%\$TEMP.wim" "%EFI_LETTER%:\$.WIM">NUL
ECHO. Unmounting EFI...&&CALL:VTEMP_DELETE&CALL:EFI_UNMOUNT
:UPDATE_END
IF EXIST "%PROG_SOURCE%\$TEMP.wim" DEL /Q /F "%PROG_SOURCE%\$TEMP.wim">NUL 2>&1
IF "%UPDATE_TYPE%"=="HOST" IF NOT DEFINED ERROR REN "Z:\%HOST_FOLDERX%" "%HOST_FOLDER%">NUL 2>&1
IF NOT DEFINED ERROR FOR %%a in (Z:\%HOST_FOLDER% Z:) DO (ICACLS "%%a" /deny everyone:^(DE,WA,WDAC^)>NUL 2>&1)
IF DEFINED REBOOT_MAN ECHO.&&ECHO. THE SYSTEM WILL NOW RESTART.&&ECHO.&&ECHO. %#@%UPDATE FINISH:%#$% %DATE% %TIME%&&CALL:BOXB2&&CALL:PAUSED&GOTO:QUIT
SET "RECOVERY_LOCK="&&GOTO:UPDATE_RECOVERY
:VTEMP_CREATE
IF DEFINED ERROR EXIT /B
IF EXIST "%PROG_SOURCE%\$TEMP.vhdx" CALL:VTEMP_DELETE>NUL 2>&1
ECHO. Mounting temporary vdisk...&&SET "VDISK=%PROG_SOURCE%\$TEMP.vhdx"&&SET "VDISK_LTR=ANY"&&CALL:VDISK_CREATE>NUL 2>&1
IF NOT EXIST "%VDISK_LTR%:\" SET "ERROR=1"
EXIT /B
:VTEMP_DELETE
IF EXIST "%PROG_SOURCE%\$TEMP.vhdx" ECHO. Unmounting temporary vdisk...&&SET "VDISK=%PROG_SOURCE%\$TEMP.vhdx"&&CALL:VDISK_DETACH>NUL 2>&1
IF EXIST "%PROG_SOURCE%\$TEMP.vhdx" DEL /Q /F "%PROG_SOURCE%\$TEMP.vhdx">NUL 2>&1
EXIT /B
:PE_WALLPAPER
CLS&&SET "MENUT0= Recovery Wallpaper"&&SET "MENUT1= "&&SET "MENUT2= %#@%AVAILABLE JPGs/PNGs:%#$%"&&SET "MENUT3= "&&SET "MENUT4= ( %##%.%#$% ) File Operation"&&SET "MENUB0= "&&SET "PICK=CUST"&&SET "$FOLD0=%CACHE_FOLDER%"&&SET "$FILT0=*.JPG *.PNG"&&CALL:FILE_PICK
IF "%SELECT%"=="." SET "FILE_TYPE=WALL"&&CALL:BASIC_FILE&EXIT /B
IF DEFINED $PICK SET "PE_WALLPAPER=%$CHOICE%"
IF NOT DEFINED $PICK SET "PE_WALLPAPER=SELECT"
EXIT /B
:HOST_FOLDER
CALL:PAD_LINE&&CALL:BOXT1&&ECHO.&&ECHO. Enter the host folder name&&ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&CALL:PAD_PREV&&SET "CHECK=ALPHA"&&SET "VERBOSE=1"&&SET "NO_SPACE=1"&&SET "NO_ASTRK=1"&&SET "PROMPT_ANY=1"&&SET "PROMPT_SET=SELECTX"&&CALL:PROMPT_SET
IF NOT DEFINED SELECTX SET "ERROR=1"
IF DEFINED ERROR CALL:PAUSED
IF NOT DEFINED ERROR SET "HOST_FOLDER=%SELECTX%"
EXIT /B
:BASIC_CREATOR
@ECHO OFF&&SET "MOUNT="&&CLS&&CALL:SETS_HANDLER&&CALL:CLEAN&&CALL:GET_SPACE&&CALL:PAD_LINE&&CALL:BOXT1&&ECHO. Image Processing / Boot Creator&&ECHO.
SET "SOURCE_LOCATION="&&FOR %%a in (A B C D E F G H I J K L N O P Q R S T U W Y Z) DO (IF EXIST "%%a:\sources\boot.wim" SET "SOURCE_LOCATION=%%a:\sources")
SET "BOOT_EXIST="&&IF EXIST "%BOOT_FOLDER%\BOOT.SAV" SET "BOOT_EXIST=1"
IF "%PROG_MODE%"=="RAMDISK" SET "BOOT_EXIST=1"
SET "WIM_EXIST="&&IF EXIST "%IMAGE_FOLDER%\*.WIM" SET "WIM_EXIST=1"
SET "VHDX_EXIST="&&IF EXIST "%IMAGE_FOLDER%\*.VHDX" SET "VHDX_EXIST=1"
SET "IMAGEPROC_GO="&&FOR %%a in (WIM_EXIST VHDX_EXIST) DO (IF DEFINED %%a SET "IMAGEPROC_GO=1")
SET "BOOTCREATE_GO="&&IF DEFINED BOOT_EXIST IF DEFINED VHDX_EXIST SET "BOOTCREATE_GO=1"
IF DEFINED SOURCE_LOCATION ECHO. (%##%-%#$%) Import Boot %XLR5%Windows Installation Media Detected%#$% Import WIM (%##%+%#$%)&&ECHO.
IF NOT DEFINED IMAGEPROC_GO ECHO. %#@%Insert a Windows Disc/ISO to import installation media%#$%&&ECHO.
IF NOT DEFINED BOOT_EXIST ECHO. %#@%Insert a Windows Disc/ISO to import boot media%#$%&&ECHO.
SET "MENUT0= %#@%AVAILABLE WIMs/VHDXs:%#$%"&&SET "MENUT1= "
IF NOT EXIST "%IMAGE_FOLDER%\*.WIM" IF NOT EXIST "%IMAGE_FOLDER%\*.VHDX" SET "MENUT0="&&SET "MENUT1="
IF EXIST "%IMAGE_FOLDER%\*.WIM" SET "BLIST=WIM"&&CALL:FILE_LIST
IF EXIST "%IMAGE_FOLDER%\*.VHDX" SET "BLIST=VHDX"&&CALL:FILE_LIST
ECHO.&&CALL:BOXB1&&CALL:PAD_LINE&&TITLE Windows Deployment Image Customization Kit v%VER_CUR% (%PROG_SOURCE%)
IF "%PROG_MODE%"=="RAMDISK" IF DEFINED IMAGEPROC_GO IF NOT DEFINED BOOTCREATE_GO ECHO. (%##%C%#$%)onvert&&CALL:PAD_LINE
IF "%PROG_MODE%"=="RAMDISK" IF DEFINED IMAGEPROC_GO IF DEFINED BOOTCREATE_GO ECHO. (%##%C%#$%)onvert (%##%G%#$%)o^^!&&CALL:PAD_LINE
IF "%PROG_MODE%"=="PORTABLE" IF DEFINED IMAGEPROC_GO IF NOT DEFINED BOOTCREATE_GO ECHO. (%##%Q%#$%)uit (%##%*%#$%) Main Menu (%##%C%#$%)onvert %#@%%FREE%GB%#$% Free&&CALL:PAD_LINE
IF "%PROG_MODE%"=="PORTABLE" IF DEFINED IMAGEPROC_GO IF DEFINED BOOTCREATE_GO ECHO. (%##%Q%#$%)uit (%##%*%#$%) Main Menu (%##%C%#$%)onvert (%##%G%#$%)o^^! %#@%%FREE%GB%#$% Free&&CALL:PAD_LINE
IF "%PROG_MODE%"=="RAMDISK" CALL:PAD_PREV
CALL:MENU_SELECT
IF DEFINED HOST_ERROR IF "%PROG_MODE%"=="RAMDISK" GOTO:BASIC_MODE
IF NOT DEFINED SELECT IF "%PROG_MODE%"=="RAMDISK" GOTO:BASIC_MODE
IF "%SELECT%"=="Q" GOTO:QUIT
IF "%SELECT%"=="C" CALL:CONVERT_PROMPT&SET "SELECT="
IF "%SELECT%"=="+" IF DEFINED SOURCE_LOCATION CALL:SOURCE_IMPORT&SET "SELECT="
IF "%SELECT%"=="-" IF DEFINED SOURCE_LOCATION CALL:BOOT_IMPORT&SET "SELECT="
IF "%SELECT%"=="G" IF "%PROG_MODE%"=="RAMDISK" IF NOT EXIST "%BOOT_FOLDER%\boot.sav" CALL:BOOT_FETCH
IF "%SELECT%"=="G" IF EXIST "%BOOT_FOLDER%\boot.sav" CALL:CREATOR_PROMPT&SET "SELECT="
IF "%SELECT%"=="*" IF "%PROG_MODE%"=="PORTABLE" SET "MENU_MODE=NORMAL"&&GOTO:MAIN_MENU
GOTO:BASIC_CREATOR
:CREATOR_PROMPT