找出包含特定文件的卷,如果该卷没有分配盘符,就分配之。

查看 173|回复 15
作者:jhzlx   
   
需要外部命令 mountvol
涉及用 for 处理多行文本流并从中获取信息。
这个脚本中的 实例 是 查找 efi\microsoft\boot\bcd ,可以根据实际情况修改 。

分配, 实际情况, 可以根据

godpeo   
沙发
noahhhh   
卷路径里包含 ? ,在 cmd 里 是通配符,所以需要考虑 避开截掉之。
Lazy007   
把 找到的符合条件的 卷 对应的盘符都存到变量 drvs2 中,是不是更好一些?
zx12315   
学习一下
liuxyon   
围观玩CMD的大佬...
china100   
https://www.sordum.org/8501/drive-letter-changer-v1-4/
用這程式就可以搜尋磁碟槽名稱並分配磁碟代號
我都用來確認PE隨身碟是U:\
Liuking6688   
谢谢分享。
Kylin30   
   

saiz 发表于 2023-1-19 19:17
https://www.sordum.org/8501/drive-letter-changer-v1-4/
用這程式就可以搜尋磁碟槽名稱並分配磁碟代號
...

我这个是先找文件,后分配盘符。
如果有盘符,就不用分配了。
至于精准定位u盘,并分配盘符,用pecmd脚本秒完成,不用手动操作。直接通过磁盘接口找u盘。
zrf1980   
我翻了翻dp盘符整理,写过一段获取信息的。
[ol]rem 使用mountvol获取卷名称
                        rem mountvol_bug:未修正。使用/s挂载的EFI分区对应的卷名称下面不会显示盘符,通过/l有可能会查出该卷名称,通过diskpart等其它方式仍然可以再次为这个EFI分区分配盘符,这就造成了一个EFI分区可能有两个盘符的情况,前者挂载的属于非diskpart盘符。
                        set /a mvn=0
                        for /f "skip=22 tokens=1,3" %%a in ('mountvol') do (
                                set "mvstr=%%a"
                                if "!mvstr:~0,2!"=="!mvstr:~-1!" (
                                        set "volumename_tmp=%%a"
                                        set "volumename_tmp=!volumename_tmp:~0,-1!"
                                )
                                if "!mvstr:~-2!"==":" (
                                        set "volumename_!mvstr:~0,1!=!volumename_tmp!"
                                ) else if "!mvstr:~0,3!"=="***" (
                                        set /a mvn+=1
                                        set "volumename_null_!mvn!=!volumename_tmp!"
                                )
                                rem 获取通过mountvol挂载的EFI分区盘符
                                if /i "%%a"=="EFI" if exist "%%b" (
                                        set "mountvol_efi=%%~db"
                                        set "mountvol_efi=!mountvol_efi:~0,1!"
                                )
                        )[/ol]复制代码
您需要登录后才可以回帖 登录 | 立即注册

返回顶部