使用ImageX和WIM重建硬盘后,BCD有时会损坏。因此,我需要从在命令提示符下无人值守运行的脚本重新构建BCD。
当手动输入时,下面的代码可以完成这项工作。我需要帮助来自动化它(参见下面的代码示例):
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force
attrib -h -s C:\boot\BCD
del C:\boot\BCD
bcdedit.exe /createstore c:\boot\bcd.temp
bcdedit.exe /store c:\boot\bcd.temp /create {bootmgr} /d "Windows Boot Manager"
bcdedit.exe /import c:\boot\bcd.temp
bcdedit.exe /set {bootmgr} device partition=C:
bcdedit.exe /timeout 10
attrib -h -s C:\boot\bcd.temp
del c:\boot\bcd.temp
bcdedit.exe /create /d "Microsoft Windows" /application osloader
bcdedit.exe /set {GUID} device partition=C:
bcdedit.exe /set {GUID} osdevice partition=C:
bcdedit.exe /set {GUID} path \Windows\system32\winload.exe
bcdedit.exe /set {GUID} systemroot \Windows
bcdedit.exe /displayorder {GUID}如上所述,我需要在无人值守的命令提示符下运行此命令。第6条最后一句"bcdedit.exe /create /d“微软视窗”/application osloader“的输出是一个新创建的GUID。以下命令需要此ID。
如何将这个新的GUID从bcdedit加载到可以在以下代码中调用的变量?
向Henrik V. Nielsen致以最良好的问候
发布于 2016-05-12 18:29:14
如果其他人也面临同样的问题,我通过添加下面这行代码解决了这个问题。
For /F "tokens=2 delims={}" %%i in ('bcdedit.exe') do (set _NEWGUID=%%i)这是可行的,因为文件中只有一个GUID。
发布于 2016-09-16 17:12:13
有一种更简单的方法。
创建新条目时,BCD接受aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee (number of digits 8-4-4-4-12)形式的所有GUID
这意味着您可以定义一个GUID,而不必使用For-Loop搜索GUID。
这对我很有效。
发布于 2016-12-09 05:41:19
这是一个基于Henrik代码的解决方案
这会将从BCD创建的GUID放入一个文本文件中,而for循环将从该文件中获取GUID
bootrec.exe /fixmbr
bootsect.exe /nt60 all /force
attrib -h -s C:\boot\BCD
del C:\boot\BCD
bcdedit.exe /createstore c:\boot\bcd.temp
bcdedit.exe /store c:\boot\bcd.temp /create {bootmgr} /d "Windows Boot Manager"
bcdedit.exe /import c:\boot\bcd.temp
bcdedit.exe /set {bootmgr} device partition=C:
bcdedit.exe /timeout 10
attrib -h -s C:\boot\bcd.temp
del c:\boot\bcd.temp
bcdedit.exe /create /d "Microsoft Windows" /application osloader>GUID.txt
For /F "tokens=2 delims={}" %%i in (GUID.txt) do (set _NEWGUID=%%i)
bcdedit.exe /set %_NEWGUID% device partition=C:
bcdedit.exe /set %_NEWGUID% osdevice partition=C:
bcdedit.exe /set %_NEWGUID% path \Windows\system32\winload.exe
bcdedit.exe /set %_NEWGUID% systemroot \Windows
bcdedit.exe /displayorder %_NEWGUID%https://stackoverflow.com/questions/37116259
复制相似问题