无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5113|回复: 27
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2023-1-19 10:21:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dos时代菜鸟 于 2023-3-16 14:25 编辑

pecmd x64 脚本
http://bbs.wuyou.net/forum.php?m ... 8MTE5OHw0MzM4NjM%3D



cmd 脚本:

需要外部命令 mountvol
涉及用 for 处理多行文本流并从中获取信息。
这个脚本中的 实例 是 查找 efi\microsoft\boot\bcd ,可以根据实际情况修改 。
mount_x.7z (781 Bytes, 下载次数: 38)





来自 2#
 楼主| 发表于 2023-3-16 11:28:02 | 只看该作者
本帖最后由 dos时代菜鸟 于 2023-3-16 14:31 编辑
black_bai 发表于 2023-3-15 15:27
大佬,我U盘分了个PETOOLS分区并用DG将其隐藏,导致进PE因为该分区没有盘符而不能加载其中的软件。求个挂载 ...

Search_part_x64_cmd.7z (1.13 MB, 下载次数: 29)

这个是 pecmd 版本的 使用 x64 位 cmd 下运行。




回复

使用道具 举报

3#
发表于 2023-1-19 10:24:49 | 只看该作者
沙发
回复

使用道具 举报

4#
 楼主| 发表于 2023-1-19 10:42:48 | 只看该作者
卷路径里包含 ? ,在 cmd 里 是通配符,所以需要考虑 避开截掉之。
回复

使用道具 举报

5#
 楼主| 发表于 2023-1-19 10:56:00 | 只看该作者
把 找到的符合条件的 卷 对应的盘符都存到变量 drvs2 中,是不是更好一些?
回复

使用道具 举报

6#
发表于 2023-1-19 12:02:18 | 只看该作者
学习一下
回复

使用道具 举报

7#
发表于 2023-1-19 15:05:13 | 只看该作者
围观玩CMD的大佬...
回复

使用道具 举报

8#
发表于 2023-1-19 19:17:46 | 只看该作者
https://www.sordum.org/8501/drive-letter-changer-v1-4/
用這程式就可以搜尋磁碟槽名稱並分配磁碟代號
我都用來確認PE隨身碟是U:\

点评

我这个是先找文件,后分配盘符。 如果有盘符,就不用分配了。 至于精准定位u盘,并分配盘符,用pecmd脚本秒完成,不用手动操作。  详情 回复 发表于 2023-1-19 21:57
回复

使用道具 举报

9#
发表于 2023-1-19 19:55:45 | 只看该作者
谢谢分享。
回复

使用道具 举报

10#
 楼主| 发表于 2023-1-19 21:57:28 来自手机 | 只看该作者
本帖最后由 dos时代菜鸟 于 2023-1-19 22:02 编辑
saiz 发表于 2023-1-19 19:17
https://www.sordum.org/8501/drive-letter-changer-v1-4/
用這程式就可以搜尋磁碟槽名稱並分配磁碟代號
...

我这个是先找文件,后分配盘符。
如果有盘符,就不用分配了。

至于精准定位u盘,并分配盘符,用pecmd脚本秒完成,不用手动操作。直接通过磁盘接口找u盘。

点评

找檔案再給代號我也是試過. 不過找名稱總比找檔案快吧. 所以我就改用改名稱比較快 至於代號 我設定中有的都寫死了 所以我都必須指定是U:\  详情 回复 发表于 2023-1-20 18:01
回复

使用道具 举报

11#
发表于 2023-1-20 12:55:47 来自手机 | 只看该作者
我翻了翻dp盘符整理,写过一段获取信息的。

  1. rem 使用mountvol获取卷名称
  2.                         rem mountvol_bug:未修正。使用/s挂载的EFI分区对应的卷名称下面不会显示盘符,通过/l有可能会查出该卷名称,通过diskpart等其它方式仍然可以再次为这个EFI分区分配盘符,这就造成了一个EFI分区可能有两个盘符的情况,前者挂载的属于非diskpart盘符。
  3.                         set /a mvn=0
  4.                         for /f "skip=22 tokens=1,3" %%a in ('mountvol') do (
  5.                                 set "mvstr=%%a"
  6.                                 if "!mvstr:~0,2!"=="!mvstr:~-1!" (
  7.                                         set "volumename_tmp=%%a"
  8.                                         set "volumename_tmp=!volumename_tmp:~0,-1!"
  9.                                 )
  10.                                 if "!mvstr:~-2!"==":" (
  11.                                         set "volumename_!mvstr:~0,1!=!volumename_tmp!"
  12.                                 ) else if "!mvstr:~0,3!"=="***" (
  13.                                         set /a mvn+=1
  14.                                         set "volumename_null_!mvn!=!volumename_tmp!"
  15.                                 )
  16.                                 rem 获取通过mountvol挂载的EFI分区盘符
  17.                                 if /i "%%a"=="EFI" if exist "%%b" (
  18.                                         set "mountvol_efi=%%~db"
  19.                                         set "mountvol_efi=!mountvol_efi:~0,1!"
  20.                                 )
  21.                         )
复制代码

点评

如果只是用来找efi分区,就不通过文件定位了。直接diskpart 更合适。  详情 回复 发表于 2023-1-20 13:24
回复

使用道具 举报

12#
发表于 2023-1-20 13:04:23 | 只看该作者
把 找到的符合条件的 卷 对应的盘符都存到变量 drvs2 中,是不是更好一些?
回复

使用道具 举报

13#
 楼主| 发表于 2023-1-20 13:24:35 | 只看该作者
nttwqz 发表于 2023-1-20 12:55
我翻了翻dp盘符整理,写过一段获取信息的。

如果只是用来找efi分区,就不通过文件定位了。直接diskpart 更合适。

点评

主要用来获取卷名称及盘符信息并赋值给变量  详情 回复 发表于 2023-1-20 14:43
回复

使用道具 举报

14#
发表于 2023-1-20 14:43:47 来自手机 | 只看该作者
dos时代菜鸟 发表于 2023-1-20 13:24
如果只是用来找efi分区,就不通过文件定位了。直接diskpart 更合适。

主要用来获取卷名称及盘符信息并赋值给变量
回复

使用道具 举报

15#
发表于 2023-1-20 18:01:02 | 只看该作者
dos时代菜鸟 发表于 2023-1-19 21:57
我这个是先找文件,后分配盘符。
如果有盘符,就不用分配了。

找檔案再給代號我也是試過.
不過找名稱總比找檔案快吧.
所以我就改用改名稱比較快
至於代號 我設定中有的都寫死了
所以我都必須指定是U:\

点评

这个代码,目的是找到含有指定文件的卷,不是特指efi 或者 u盘。 因为 找efi 分区或者u盘,都有特定的代码了。 至于u盘分配特定盘符u 也是一样,用 pecmd 找到 USB接口的盘,再进一步确定目标盘,再分配盘符为u  详情 回复 发表于 2023-1-20 20:54
回复

使用道具 举报

16#
 楼主| 发表于 2023-1-20 20:54:01 | 只看该作者
saiz 发表于 2023-1-20 18:01
找檔案再給代號我也是試過.
不過找名稱總比找檔案快吧.
所以我就改用改名稱比較快

这个代码,目的是找到含有指定文件的卷,不是特指efi 或者 u盘。
因为 找efi 分区或者u盘,都有特定的代码了。

至于u盘分配特定盘符u 也是一样,用 pecmd 找到 USB接口的盘,再进一步确定目标盘,再分配盘符为u .这里面需要考虑 分区卷标的重复问题,如果同时有好几个u盘,u盘上有好几个分区,等等问题。这个脚本 并不适用。

点评

就是怕有太多分區 才會用名稱分別啊.. 檔案也是會有重覆問題 不過我認為 搜尋分區名稱速度應該快於搜尋各分區下特別檔案 所以才改用分區名稱識別  详情 回复 发表于 2023-2-26 18:26
回复

使用道具 举报

17#
发表于 2023-1-21 08:41:25 | 只看该作者
文件搜索?

点评

是定位文件盘符  详情 回复 发表于 2023-1-24 22:50
回复

使用道具 举报

18#
 楼主| 发表于 2023-1-24 22:50:51 来自手机 | 只看该作者
adminkk 发表于 2023-1-21 08:41
文件搜索?

是定位文件盘符
回复

使用道具 举报

19#
发表于 2023-2-9 17:49:17 | 只看该作者
学习一下
回复

使用道具 举报

20#
发表于 2023-2-15 15:03:54 | 只看该作者
谢谢分享
回复

使用道具 举报

21#
发表于 2023-2-26 18:26:31 | 只看该作者
dos时代菜鸟 发表于 2023-1-20 20:54
这个代码,目的是找到含有指定文件的卷,不是特指efi 或者 u盘。
因为 找efi 分区或者u盘,都有特定的代 ...

就是怕有太多分區 才會用名稱分別啊..
檔案也是會有重覆問題
不過我認為
搜尋分區名稱速度應該快於搜尋各分區下特別檔案
所以才改用分區名稱識別

点评

关键是有的分区 没有被挂载,怎么获取 卷标名称? 需要把所有的可用分区都挂载了,再逐个找卷标,而有的时候 不想把某些分区挂出来。  详情 回复 发表于 2023-2-27 14:37
回复

使用道具 举报

22#
 楼主| 发表于 2023-2-27 14:37:35 | 只看该作者
本帖最后由 dos时代菜鸟 于 2023-2-27 14:40 编辑
saiz 发表于 2023-2-26 18:26
就是怕有太多分區 才會用名稱分別啊..
檔案也是會有重覆問題
不過我認為

关键是有的分区 没有被挂载,怎么获取 卷标名称?
需要把所有的可用分区都挂载了,再逐个找卷标,而有的时候 不想把某些分区挂出来。

而,if 指令恰恰可以 不通过盘符 判定某个分区是否存在某个特定文件。

回复

使用道具 举报

23#
发表于 2023-3-15 15:27:36 | 只看该作者
大佬,我U盘分了个PETOOLS分区并用DG将其隐藏,导致进PE因为该分区没有盘符而不能加载其中的软件。求个挂载命令。
分区名 PETOOLS,并且分区下有PETOOLS文件夹

点评

这个是 pecmd 版本的 使用 x64 位 cmd 下运行。 [attachimg]522657[/attachimg] [attachimg]522658[/attachimg]  详情 回复 发表于 2023-3-16 11:28
如果没猜错,diskgen 隐藏分区本质是通过修改mbr分区id 或者修改gpt分区属性的方式实现的。 这种情况下,建议用pecmd 脚本。  详情 回复 发表于 2023-3-15 23:57
一楼脚本可以实现,需要修改脚本前部 设置的 搜索目标。 自己改吧。  详情 回复 发表于 2023-3-15 19:46
回复

使用道具 举报

24#
 楼主| 发表于 2023-3-15 19:46:45 | 只看该作者
本帖最后由 dos时代菜鸟 于 2023-3-15 19:48 编辑
black_bai 发表于 2023-3-15 15:27
大佬,我U盘分了个PETOOLS分区并用DG将其隐藏,导致进PE因为该分区没有盘符而不能加载其中的软件。求个挂载 ...
前提是 mountvol 可以识别你说的那个隐藏分区。
然后,一楼脚本就可以实现,需要修改脚本前部 设置的 搜索目标。
自己改吧。

set filex=petools

回复

使用道具 举报

25#
 楼主| 发表于 2023-3-15 23:57:25 | 只看该作者
black_bai 发表于 2023-3-15 15:27
大佬,我U盘分了个PETOOLS分区并用DG将其隐藏,导致进PE因为该分区没有盘符而不能加载其中的软件。求个挂载 ...

如果没猜错,diskgen 隐藏分区本质是通过修改mbr分区id 或者修改gpt分区属性的方式实现的。
这种情况下,建议用pecmd 脚本。
回复

使用道具 举报

26#
发表于 2023-3-16 10:25:06 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

27#
发表于 2023-3-17 14:04:49 | 只看该作者
dos时代菜鸟 发表于 2023-3-16 11:28
这个是 pecmd 版本的 使用 x64 位 cmd 下运行。

感谢大佬,好详细,刚好还差两分就能下载附件了
回复

使用道具 举报

28#
发表于 2023-12-7 01:19:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-26 15:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表