无忧启动论坛

标题: 判断当前系统是否为VHD系统的方法 [打印本页]

作者: baby1277    时间: 2024-12-2 09:15
标题: 判断当前系统是否为VHD系统的方法
本帖最后由 baby1277 于 2024-12-8 19:23 编辑
  1. @echo off
  2. for /f "tokens=3 delims=" %%i in  ('echo LIST VDISK^|diskpart') do set s1=%%i
  3. if defined s1 set vhd=yes
  4. setlocal enabledelayedexpansion
  5. for /f "tokens=2,3" %%i in  ('echo LIST VOLUME^|diskpart') do if "%%j"=="%SystemDrive:~0,1%" set s2=%%i
  6. if "%s1:~-1%"=="!s2!" set vhd=yes
  7. setlocal disabledelayedexpansion
  8. if defined vhd echo 本系统为VHD系统
  9. if not defined vhd echo 本系统不是VHD系统
  10. pause
复制代码

作者: baby1277    时间: 2024-12-2 09:21
沙发
作者: wn168cn@163.com    时间: 2024-12-2 09:34
感谢分享
作者: tanglf    时间: 2024-12-2 09:38
谢谢分享


作者: szwp    时间: 2024-12-2 09:53
当前系统是current,不一定是默认。
作者: iAmethyst    时间: 2024-12-2 10:27

谢谢分享
作者: baby1277    时间: 2024-12-2 10:29
本帖最后由 baby1277 于 2024-12-2 10:42 编辑
szwp 发表于 2024-12-2 09:53
当前系统是current,不一定是默认。

好吧,是我理解错了你说的,你说的情况应该是后期修改了BCD菜单吧。有点难办啊。

作者: dos时代菜鸟    时间: 2024-12-2 10:31
本帖最后由 dos时代菜鸟 于 2024-12-2 11:22 编辑

用 pecmd 可以直接判断,当前系统挂链的 vhd 具体文件。如果查不出,就不是 vhd .



C_vhdx.7z (1.09 MB, 下载次数: 12)
作者: mrzhonghb    时间: 2024-12-2 10:34
这个强,支持
作者: wsasecy    时间: 2024-12-2 10:44
本帖最后由 wsasecy 于 2024-12-2 10:51 编辑

回复一个看看本帖隐藏内容、你隐藏了对 bcdedit /enum BOOTMGR 的啥见解~~
发现所藏如下

厉害呀...


作者: wang1126    时间: 2024-12-2 10:52
谢谢楼主分享
作者: 1G空间100元    时间: 2024-12-2 10:57
判断这个有啥实际意义呢?
作者: baby1277    时间: 2024-12-2 10:58
wsasecy 发表于 2024-12-2 10:44
回复一个看看本帖隐藏内容、你隐藏了对 bcdedit /enum BOOTMGR 的啥见解~~
发现所藏如下

这么小的吗
作者: 2012jiashanni    时间: 2024-12-2 12:08
BOOL IsNativeVhdBoot(
  [out] PBOOL NativeVhdBoot
);


https://learn.microsoft.com/zh-c ... ase-isnativevhdboot
作者: mimi820    时间: 2024-12-2 12:41
还没能搞懂VHD系统是什么,干什么用的
作者: yc2428    时间: 2024-12-2 12:46

谢谢分享
作者: guong    时间: 2024-12-2 13:28
来学习了
作者: zqfeng01    时间: 2024-12-2 13:52
谢谢分享
作者: szwp    时间: 2024-12-2 14:35
baby1277 发表于 2024-12-2 10:29
好吧,是我理解错了你说的,你说的情况应该是后期修改了BCD菜单吧。有点难办啊。

不是每次都进默认的,可能会在菜单上换其它系统进入的。
作者: freesoft00    时间: 2024-12-2 15:44
有些系统通过bcdedit无法打开bcd文件的
作者: wsasecy    时间: 2024-12-2 17:25
baby1277 发表于 2024-12-2 10:58
这么小的吗

乖乖,再大就违规了~~
作者: dos时代菜鸟    时间: 2024-12-2 19:07
看看 8楼代码,应该可以。

作者: likeyouli    时间: 2024-12-3 15:42
dos时代菜鸟 发表于 2024-12-2 19:07
看看 8楼代码,应该可以。

bcdedit /v /enum {current}|findstr "osdevice"
您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=432049
作者: dos时代菜鸟    时间: 2024-12-3 16:13
likeyouli 发表于 2024-12-3 15:42
bcdedit /v /enum {current}|findstr "osdevice"
您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?m ...

那个是 grub 引导器虚拟的内存盘系统,这里说的是 bcd 调用 vhdx 系统。
作者: likeyouli    时间: 2024-12-3 16:22
dos时代菜鸟 发表于 2024-12-3 16:13
那个是 grub 引导器虚拟的内存盘系统,这里说的是 bcd 调用 vhdx 系统。

不是判定当前系统是否为vhd系统吗 ?
这句命令判定不了吗 ?
作者: dos时代菜鸟    时间: 2024-12-4 07:54
likeyouli 发表于 2024-12-3 16:22
不是判定当前系统是否为vhd系统吗 ?
这句命令判定不了吗 ?

可以。

作者: 孟仁飞    时间: 2024-12-6 14:45
学习
作者: likeyouli    时间: 2024-12-7 09:20
dos时代菜鸟 发表于 2024-12-4 07:54
可以。

还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启动..
C:\Users\Administrator>powercfg /a
此系统上有以下睡眠状态:
    待机 (S3)

此系统上没有以下睡眠状态:
    待机 (S1)
        系统固件不支持此待机状态。

    待机 (S2)
        系统固件不支持此待机状态。

    休眠
        内部系统组件已禁用休眠。
                从 VHD 启动

    待机(S0 低电量待机)
        系统固件不支持此待机状态。

    混合睡眠
        休眠不可用。

    快速启动
        休眠不可用。

作者: baby1277    时间: 2024-12-7 11:13
likeyouli 发表于 2024-12-7 09:20
还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启 ...

貌似可行,我也想到了另外一个方法,就是用diskpart来查询%SystemDrive%
作者: freesoft00    时间: 2024-12-7 14:54
likeyouli 发表于 2024-12-7 09:20
还有一种巧妙的方法,判定是否为vhd系统,可以用 powercfg /a ,如果是vhd系统,会提示禁用休眠,从vhd启 ...

这个不一定,我的就没有
作者: 桔梗想见雪    时间: 2024-12-9 09:47
likeyouli 发表于 2024-12-3 15:42
bcdedit /v /enum {current}|findstr "osdevice"
您在这里也讨论过啊 http://bbs.wuyou.net/forum.php?m ...

我看了这个帖子,对我来讲有点难操作,但是感觉挺有趣的,怎么把真实系统作为母盘(系统版本好像有点点高)然后分子盘?




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3