无忧启动论坛

标题: 找出包含特定文件的卷,如果该卷没有分配盘符,就分配之。 [打印本页]

作者: dos时代菜鸟    时间: 2023-1-19 10:21
标题: 找出包含特定文件的卷,如果该卷没有分配盘符,就分配之。
本帖最后由 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, 下载次数: 44)






作者: conlin888    时间: 2023-1-19 10:24
沙发
作者: dos时代菜鸟    时间: 2023-1-19 10:42
卷路径里包含 ? ,在 cmd 里 是通配符,所以需要考虑 避开截掉之。
作者: dos时代菜鸟    时间: 2023-1-19 10:56
把 找到的符合条件的 卷 对应的盘符都存到变量 drvs2 中,是不是更好一些?
作者: 灌水小混混    时间: 2023-1-19 12:02
学习一下
作者: 邪恶海盗    时间: 2023-1-19 15:05
围观玩CMD的大佬...
作者: saiz    时间: 2023-1-19 19:17
https://www.sordum.org/8501/drive-letter-changer-v1-4/
用這程式就可以搜尋磁碟槽名稱並分配磁碟代號
我都用來確認PE隨身碟是U:\
作者: 旁观者清    时间: 2023-1-19 19:55
谢谢分享。
作者: dos时代菜鸟    时间: 2023-1-19 21:57
本帖最后由 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盘。
作者: nttwqz    时间: 2023-1-20 12:55
我翻了翻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.                         )
复制代码

作者: jhzlx    时间: 2023-1-20 13:04
把 找到的符合条件的 卷 对应的盘符都存到变量 drvs2 中,是不是更好一些?
作者: dos时代菜鸟    时间: 2023-1-20 13:24
nttwqz 发表于 2023-1-20 12:55
我翻了翻dp盘符整理,写过一段获取信息的。

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

主要用来获取卷名称及盘符信息并赋值给变量
作者: saiz    时间: 2023-1-20 18:01
dos时代菜鸟 发表于 2023-1-19 21:57
我这个是先找文件,后分配盘符。
如果有盘符,就不用分配了。

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

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

至于u盘分配特定盘符u 也是一样,用 pecmd 找到 USB接口的盘,再进一步确定目标盘,再分配盘符为u .这里面需要考虑 分区卷标的重复问题,如果同时有好几个u盘,u盘上有好几个分区,等等问题。这个脚本 并不适用。
作者: adminkk    时间: 2023-1-21 08:41
文件搜索?
作者: dos时代菜鸟    时间: 2023-1-24 22:50
adminkk 发表于 2023-1-21 08:41
文件搜索?

是定位文件盘符
作者: wfaming    时间: 2023-2-9 17:49
学习一下
作者: yyz2191958    时间: 2023-2-15 15:03
谢谢分享
作者: saiz    时间: 2023-2-26 18:26
dos时代菜鸟 发表于 2023-1-20 20:54
这个代码,目的是找到含有指定文件的卷,不是特指efi 或者 u盘。
因为 找efi 分区或者u盘,都有特定的代 ...

就是怕有太多分區 才會用名稱分別啊..
檔案也是會有重覆問題
不過我認為
搜尋分區名稱速度應該快於搜尋各分區下特別檔案
所以才改用分區名稱識別
作者: dos时代菜鸟    时间: 2023-2-27 14:37
本帖最后由 dos时代菜鸟 于 2023-2-27 14:40 编辑
saiz 发表于 2023-2-26 18:26
就是怕有太多分區 才會用名稱分別啊..
檔案也是會有重覆問題
不過我認為

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

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


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

set filex=petools


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

如果没猜错,diskgen 隐藏分区本质是通过修改mbr分区id 或者修改gpt分区属性的方式实现的。
这种情况下,建议用pecmd 脚本。
作者: 时尚拼搏    时间: 2023-3-16 10:25
谢谢分享
作者: dos时代菜鸟    时间: 2023-3-16 11:28
本帖最后由 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, 下载次数: 38)

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





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

感谢大佬,好详细,刚好还差两分就能下载附件了
作者: nowayer    时间: 2023-12-7 01:19
提示: 作者被禁止或删除 内容自动屏蔽




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