@echo off
if not exist %systemroot%\System32\zh-CN\diskpart.exe.mui exit
if "%~2" neq "" exit
>%temp%\d.log (echo select vdisk file=%1&echo detail vdisk)
for /f "delims=" %%i in ('%systemroot%\system32\diskpart.exe /s %temp%\d.log^|%systemroot%\system32\find.exe "关联的磁盘号"') do set ach=%%i
if not defined ach echo.&echo 遇到错误: 文件或目录损坏且无法读取。&goto t
if "%ach:~0,3%"=="找不到" set "part=attach"&%systemroot%\system32\attrib.exe -r %1
if "%ach:~0,3%"=="关联的" set part=detach
>%temp%\d.log (echo select vdisk file=%1&echo %part% vdisk)
for /f "tokens=2" %%i in ('%systemroot%\system32\diskpart.exe /s %temp%\d.log') do set inf=%%i
echo.&echo %inf%
:t
>nul %systemroot%\system32\choice.exe /t 1 /d n
exit
注意:vhd文件无法在NTFS以外的文件系统里挂载, 这个限制和 SSD trim 如出一则,非NTFS文件系统进行 trim 会出错。
经测试,在windows 8 中依然没有解决以上两个问题。