|
本帖最后由 dos时代菜鸟 于 2018-3-8 21:47 编辑
挂载,有的 vhd 里面有 隐藏的分区,所以 用这个 可以 挂载并一起分配盘符。
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- if *%1*==** goto :eof
- set file=%~dpnx1
- echo 正在装载 %file%
- >"%temp%\vhd.txt" echo select vdisk file=%file%
- >>"%temp%\vhd.txt" echo attach vdisk
- >>%temp%\vhd.txt echo list partition
- diskpart /s %temp%\vhd.txt >%temp%\vhd2.txt
- >"%temp%\vhd.txt" echo select vdisk file=%file%
- for /f "tokens=2" %%c in (%temp%\vhd2.txt) do (
- if "!begin!"=="ok" (
- echo select partition %%c >>%temp%\vhd.txt
- echo assign noerr >>%temp%\vhd.txt
- )
- set l=%%c
- if "!l:~0,1!"=="-" set begin=ok
- )
- diskpart /s "%temp%\vhd.txt"
复制代码
把 要卸载的 vhd 拖放到这个 批处理,就可以了。
如果需要 管理员权限,可以建立一个 管理员权限的 快捷方式,再把 vhd 拖放到 这个快捷方式上。
卸载
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- if *%1*==** goto end
- echo %1
- >%temp%\vhd.txt echo select vdisk file=%1
- >>%temp%\vhd.txt echo list partition
- diskpart /s %temp%\vhd.txt >%temp%\vhd2.txt
- for /f "tokens=2" %%c in (%temp%\vhd2.txt) do (
- if "!begin!"=="ok" (
- echo select partition %%c >>%temp%\vhd.txt
- echo remove dismount noerr >>%temp%\vhd.txt
- )
- set l=%%c
- if "!l:~0,1!"=="-" set begin=ok
- )
- >>"%temp%\vhd.txt" echo DETACH vdisk
- diskpart /s "%temp%\vhd.txt"
- :end
复制代码
因为一些 vhd 有esp 等分区,挂载分配盘符以后可能需要先 remove 盘符卷再 卸载vhd文件。所以更新了一下这个脚本。 |
评分
-
查看全部评分
|