无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4206|回复: 7
打印 上一主题 下一主题

[已解决] PE下怎么通过PECMD或者不使用任何工具以卷标定位分配指定盘符运行指定程序

[复制链接]
跳转到指定楼层
1#
发表于 2019-1-23 16:22:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xuexiang 于 2019-1-25 23:52 编辑

PE下怎么通过PECMD或者不使用任何工具
以卷标定位分配指定盘符运行指定程序
比如
我有个联想隐藏分区卷标为PBR_DRV
怎么直接分配这个分区指定盘符后运行指定程序

来自 6#
发表于 2019-1-25 23:08:47 | 只看该作者
本帖最后由 527104427 于 2019-1-25 23:11 编辑

不必一股脑地把隐藏分区全显示出来,而是找到符合条件的才分配盘符。

  1. CALL AAA

  2. _SUB AAA
  3.         PART list disk,&a
  4.         FORX * %&a%,&b,
  5.         {
  6.                 PART list part %&b%,&c
  7.                 FORX * %&c%,&d,
  8.                 {
  9.                         FDRV *vol &e=\\?\Harddisk%&b%Partition%&d%
  10.                         FIND $%&e%=PBR_DRV,
  11.                         {
  12.                                 SHOW %&b%:%&d%,Z
  13.                                 EXEC =Z:\想要运行的程序.exe
  14.                                 EXIT _SUB
  15.                         }
  16.                 }
  17.         }
  18. _END
复制代码



为了避免交流不畅,附上PECMD:   PECMD.7z (1.62 MB, 下载次数: 38)





点评

系统刚刚试了一下 成功了 附件刚下载就被wd给干了 下了两次,本地有就直接使用以前的了  详情 回复 发表于 2019-1-25 23:39
回复

使用道具 举报

推荐
发表于 2019-1-25 18:14:02 | 只看该作者
本帖最后由 sunsea 于 2019-1-25 18:50 编辑
  1. @echo off
  2. setlocal  ENABLEDELAYEDEXPANSION
  3. set letters=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
  4. :sth
  5. for /f "tokens=1,* delims=," %%i in ("!letters!") do(
  6. vol %%i: | findstr PBR_DRV > nul
  7. if not errorlevel 1 (
  8.    %%i:
  9.    rem 在这里做一些你想做的事情
  10. )
  11. set letters=%%j
  12. )
  13. if not "!letters!"=="" goto sth
复制代码

点评

测试了一下pe和系统下均未成功,提示这里不应有 %%i ,去掉提示这里不应有 do(  发表于 2019-1-25 20:20
回复

使用道具 举报

推荐
发表于 2019-1-23 18:08:03 | 只看该作者
回复

使用道具 举报

3#
发表于 2019-1-23 19:34:35 | 只看该作者
可以其他语言编程实现 但是PECMD脚本怎么实现不知道
回复

使用道具 举报

5#
发表于 2019-1-25 21:22:07 | 只看该作者
本帖最后由 sunsea 于 2019-1-25 21:35 编辑
  1. @echo off
  2. setlocal  ENABLEDELAYEDEXPANSION
  3. set letters=A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
  4. :sth
  5. for /f "tokens=1,* delims=," %%i in ("!letters!") do (
  6. vol %%i: | findstr PBR_DRV >nul 2>nul
  7. if not errorlevel 1 (
  8.    %%i:
  9.    rem 在这里做一些你想做的事情,%%i是当前盘符
  10. )
  11. set letters=%%j
  12. )
  13. if not "!letters!"=="" goto sth

复制代码


抱歉,刚刚do后面少了一个空格导致了错误。保存为bat即可。还有不要用点评,点评是无法被回复的。

这里适用于你的分区已经显示的情况,如果还是隐藏的话,要用PECMD先显示隐藏分区,在
  1. @echo off
复制代码
后面加
  1. PECMD SHOW * -1:-1,,3000
复制代码
这里的PECMD应当是PECMD2012。
回复

使用道具 举报

7#
 楼主| 发表于 2019-1-25 23:39:06 | 只看该作者
本帖最后由 xuexiang 于 2019-1-25 23:44 编辑
527104427 发表于 2019-1-25 23:08
不必一股脑地把隐藏分区全显示出来,而是找到符合条件的才分配盘符。


系统下刚刚试了一下
成功了
附件刚下载就被wd给干了
下了两次,本地有就直接使用以前的了
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-24 14:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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