echo ------------------------------------------------------------------------------
set /p op=请输入工作任务类型:1-3----
for /l %%i in (1,1,3) do (
if !op!==%%i (
goto ValidInput)
)
echo 这么简单的选择题都会错,输入数字1-3有这么难吗,请重新输入
echo ------------------------------------------------------------------------------
goto opInput
:ValidInput
if !op!==3 exit
if !op!==1 (
set fileSourceWim=0
set /a CountIndex=0
set /a a=0
::查找Backup目录中所有映像文件
dir %~dp0\*.wim /b /s >%~dp0\tmp_Imagex\fbackup.txt
@echo 查找到%~dp0目录下所有映像文件如下表
@echo -----------------------------------------------------
for /f "usebackq delims=" %%i in (%~dp0\tmp_Imagex\fbackup.txt) do (
set /a a+=1
echo 系统映像:!a! %%i)
if !a!==0 (
echo 无系统映像文件,直接退出
pause
goto End)
@echo -----------------------------------------------------
:SourceWimInput
set /p SourceWim=请输入要安装系统Wim文件序号,只有序号有效,输完请按回车----
for /l %%i in (1,1,!a!) do (
if !SourceWim!==%%i (
goto ValidSourceInput)
)
set /a a=0
for /f "usebackq delims=" %%i in (%~dp0\tmp_Imagex\fbackup.txt) do (
set /a a+=1
if !a!==!SourceWim! (
set fileSourceWim=%%i
echo 你选择的系统映像文件是:!fileSourceWim!
echo -----------------------------------------------------
goto ReadySourceWim)
)
for /f "tokens=3 skip=2 delims= " %%i in (%~dp0\tmp_Imagex\Num.txt) do (
set /a CountIndex=%%i
echo 注意:该映像文件**有!CountIndex!个系统映像,请正确选择索引号
)
echo -----------------------------------------------------
for /f "skip=2 delims=" %%i in (%~dp0\tmp_Imagex\Num.txt) do (
set /a IndexTmp+=1
echo 索引!IndexTmp!:%%i)
echo -----------------------------------------------------
echo 1、下面要输入导出映像的索引号,可向上滚动显示刚才映像文件信息。
echo 2、只有数字有效,第一个映像索引是1,依次类推。
:SourceIndexInput
set /p Index=3、请输入要导出系统映像的索引号----
echo -----------------------------------------------------
for /l %%i in (1,1,!CountIndex!) do (
if !Index!==%%i (
goto ValidIndexInput)
)
:End
dir %~dp0\tmp_Imagex /ad /b /s >%~dp0\del_rd.txt
for /f "usebackq delims=" %%i in (%~dp0\del_rd.txt) do ((takeown /f "%%i" /r /d y >%~dp0\del_log.txt)&(@echo y|icacls "%%i" /t /q /grant system:f )&(rd "%%i" /s /q))
takeown /f %~dp0\tmp_Imagex /r /d y >%~dp0\del_rd.txt
@echo y|icacls %~dp0\tmp_Imagex /t /q /grant system:f
rd %~dp0\tmp_Imagex /s /q
icacls %~dp0\common /deny administrator:d /t >null
del /f /s /q %~dp0\del_log.txt
del /f /s /q %~dp0\null
del /f /s /q %~dp0\del_rd.txt
echo 任务结束时间是%time:~,2%点%time:~3,2%分%time:~6,2%秒
set "T2=%time%"
if "%T2:~,2%" lss "%T1:~,2%" (set Tday+=8640000)
set /a "T_d=%Tday%+(%T2:~,2%*360000)+(%T2:~3,1%*60000+%T2:~4,1%*6000)+(%T2:~6,1%*1000+%T2:~7,1%*100)+(%T2:~9,1%*10+%T2:~-1%)-(%T1:~,2%*360000)-(%T1:~3,1%*60000+%T1:~4,1%*6000)-(%T1:~6,1%*1000+%T1:~7,1%*100)-(%T1:~9,1%*10+%T1:~-1%)"
set /a "ss=%T_d%/100%%60"
set /a "mm=%T_d%/6000%%60"
set /a "hh=%T_d%/360000%%1"
set /a "ms=%T_d%%%100"
echo 本次任务消耗时间为 %hh%:%mm%:%ss%.%ms%秒
pause
7、UEFI_GPT引导修复重建小工具源码
@echo off&mode con lines=25 cols=90
color 0a
setlocal enabledelayedexpansion
@echo ------------------------------------------------------------------------------
rd %systemdrive%\users\Dir_Test>nul 2>nul
md %systemdrive%\users\Dir_Test>nul 2>nul||(Echo 请使用右键管理员身份运行&&Pause >nul&&Exit)
rd %systemdrive%\users\Dir_Test>nul 2>nul
cls
title UEFI_GPT引导修复重建_马宝银提供
cls
echo.
@echo ------------------------------------------------------------------------------
@echo 程序运行环境:Win8/7,或者Win8/7的PE,但需支持DiskPart,管理员身份
@echo 程序主要功能:UEFI_GPT引导修复重建
@echo ------------------------------------------------------------------------------
echo.
set validLabel=0
:AssignLabel
cls
echo list vol>%~dp0\DiskPart.txt
echo exit>>%~dp0\DiskPart.txt
diskpart /s %~dp0\DiskPart.txt
echo ------------------------------------------------------------------------------
if !validLabel!==1 goto validLabelESP
set /p bLabelHave=请问ESP分区是否已经有盘符,是y,不n---
if !bLabelHave!==y (
set /p Label_ESP=请输入ESP分区现在的盘符,我不检测无效盘符噢---
set validLabel=1
goto validLabelESP
)
set /p choiceVol_6=请输入ESP分区的卷编号,如果ESP分区已有盘符,直接回车---
set /p Label_ESP=请输入盘符,我不检测无效盘符噢---
echo select vol !choiceVol_6!>%~dp0\DiskPart.txt
echo assign letter=!Label_ESP!>>%~dp0\DiskPart.txt
set validLabel=1
echo exit>>%~dp0\DiskPart.txt
diskpart /s %~dp0\DiskPart.txt
echo ------------------------------------------------------------------------------
:validLabelESP
set /p Label_SYS=搞完ESP分区,请输入系统盘符,我不检测无效盘符噢---
%~dp0\common\bcdboot !Label_SYS!:\windows /s !Label_ESP!: /f ALL
set /p bProceedA=请问是否继续修复重建其它系统的引导项,是y,不n---
if !bProceedA!==y goto AssignLabel
del /f /s /q %~dp0\DiskPart.txt
echo 任务结束! Congratulations!
pause