批处理添加VHD启动项 bcdedit /create /d "Win7x64 VHD" /application osloader >%USERPROFILE%\AppD

bcdedit /create /d "Win7x64 VHD" /application osloader >%USERPROFILE%\AppData\Local\Temp\temp.txt
temp.txt的内容大概如下
项 {fa53af52-9853-11e1-a7d1-f0def184fb4c} 已成功创建。

在这里设置一个变量,在temp.txt的内容里面找到{fa53af52-9853-11e1-a7d1-f0def184fb4c}字符并作为下面命令的变量值, 应该怎么做?
bcdedit /set {fa53af52-9853-11e1-a7d1-f0def184fb4c} device vhd=[d:]\w7x64.vhd
bcdedit /set {fa53af52-9853-11e1-a7d1-f0def184fb4c} osdevice vhd=[d:]\w7x64.vhd
bcdedit /set {fa53af52-9853-11e1-a7d1-f0def184fb4c} detecthal on
bcdedit /displayorder {fa53af52-9853-11e1-a7d1-f0def184fb4c} /addlast
del %USERPROFILE%\AppData\Local\Temp\temp.txt

@echo off
set fn=%USERPROFILE%\AppData\Local\Temp\temp.txt
for /f "tokens=2" %%i in ('type "%fn%"') do set s=%%i
bcdedit /set %s% device vhd=[d:]\w7x64.vhd
......
del /f /q "%fn%"追问

for /f "tokens=2" %%i in ('type "%fn%"') do set s=%%i

这个可以解释一下吗?

追答

temp.txt里的内容(type %fn%) 以空格为分隔取第2部分(tokens=2) 赋值给变量s(set s=%%i )

追问

我把第一个命令改了一下
bcdedit /copy {current} /d "Win7x64 VHD" >%USERPROFILE%\AppData\Local\Temp\temp.txt
temp.txt的内容是下面这样的,引用“S”的时候多了一个“。”,怎样可以去掉?
已将该项成功复制到 {9b4544e2-99d1-11e1-af5f-f0def184fb4c}。

或者能不能通过查找“{”“}”来引用{}之间的字符?

追答

@echo off
set fn=%USERPROFILE%\AppData\Local\Temp\temp.txt
for /f "tokens=2 delims=。 " %%i in ('type "%fn%"') do set s=%%i
bcdedit /set %s% device vhd=[d:]\w7x64.vhd
......
del /f /q "%fn%"

温馨提示:答案为网友推荐,仅供参考
相似回答