无忧启动论坛

标题: 悬赏红包求一个批处理!!! [打印本页]

作者: xxnh    时间: 2018-6-5 08:47
标题: 悬赏红包求一个批处理!!!
需求一个批处理,用来检测硬盘的分区模式,检测到系统所在的硬盘为MBR的时候调用Mbr.BAT.检测到系统所在的硬盘为GPT时调用GPT.BAT。欢迎大家私信给我。决不食言!!谢谢!!!!

下面的以前发的帖子,但是之前的批处理有个问题就是系统所在的硬盘为第二硬盘的时候,和第一硬盘的分区模式不一样的时候,批处理就没有作用了。
http://bbs.wuyou.net/forum.php?m ... d=402721&extra=
作者: xxnh    时间: 2018-6-5 08:47
一定要检测系统所在的硬盘的,谢谢。自己先占楼。
作者: 窄口牛    时间: 2018-6-5 08:59
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. echo 请输入您的硬盘总数,包括内存虚拟盘
  4. set /P i=
  5. set n=0
  6. :start
  7. cmd /c "echo select disk !n! && echo uniqueid disk" | diskpart | find "{">nul
  8. if %errorlevel% EQU 0 (
  9. start gpt.bat
  10. ) else (
  11. start mbr.bat
  12. )
  13. set /a n=n+1
  14. IF /i not "!n!"=="%i%" (goto start) ELSE (goto end)
  15. :end
  16. pause
复制代码

作者: 窄口牛    时间: 2018-6-5 09:00
你这需要考虑对哪个硬盘操作
作者: xxnh    时间: 2018-6-5 09:05
窄口牛 发表于 2018-6-5 09:00
你这需要考虑对哪个硬盘操作

就是对系统所在的硬盘,这样说吧,我要做一个自动激活win7的工具,它分了MBR和GPT2种激活工具,我想在检测到系统所在的分区模式的时候调用对应的激活工具,
作者: xxnh    时间: 2018-6-5 09:05
不知道我表述清楚没,
作者: 窄口牛    时间: 2018-6-5 09:07
那要是多系统呢?
并且gpt和mbr的硬盘都有系统
这种所谓的自动并不可取
作者: xxnh    时间: 2018-6-5 09:22
只是针对当前系统所在的硬盘
作者: xxnh    时间: 2018-6-5 09:26
窄口牛 发表于 2018-6-5 09:07
那要是多系统呢?
并且gpt和mbr的硬盘都有系统
这种所谓的自动并不可取

只是针对当前系统所在的硬盘,可以不用手动输入硬盘数不?
作者: 527104427    时间: 2018-6-5 09:34
xxnh 发表于 2018-6-5 09:26
只是针对当前系统所在的硬盘,可以不用手动输入硬盘数不?

用PECMD来做只需要两句命令:

PART -iv=3 list drv %SystemDrive%,&a
FIND $%&a%=GPT, EXEC -hide =gpt.BAT! EXEC -hide =Mbr.BAT

做了一个现成的exe,直接双击即可。要改代码,用resource hacker编辑script---101---2052即可。

示例.7z

939.06 KB, 下载次数: 4, 下载积分: 无忧币 -2


作者: wuyouaaa    时间: 2018-6-5 09:43
本帖最后由 wuyouaaa 于 2018-6-5 09:53 编辑

:Main
for /f "tokens=4 delims==\" %%i in ('wmic path Win32_LogicalDiskToPartition ^| findstr "%systemdrive%"') do call :GetType %%i
echo %Type%
if "%Type%" == "GPT" (echo Fuck You, I am GPT) else (echo Oh Shit, I am mbr)
pause
exit /b

:GetType
set "DeviceID=%~1"
for /f "tokens=2 delims==:" %%i in ('"wmic path Win32_DiskPartition where (DeviceID = '%DeviceID%') get Type /value"') do set "Type=%%i"
作者: xxnh    时间: 2018-6-5 20:44
527104427 发表于 2018-6-5 09:34
用PECMD来做只需要两句命令:

PART -iv=3 list drv %SystemDrive%,&a

谢谢,我测试好了联系你!
作者: 窄口牛    时间: 2018-6-5 22:02
  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. for /f "skip=1 tokens=2 delims= " %%i in ('echo list vol^|diskpart ^|findstr "C"')

  4. do (
  5. cmd /c "echo list vol&echo select vol %%i &echo detail partition" | diskpart>temp
  6. )
  7. find "*" temp
  8. del temp /q
  9. IF errorlevel 0 (start gpt.bat) ELSE (start mbr.bat)
  10. pause>nul
复制代码

作者: Anson4    时间: 2018-6-6 10:52
527104427 发表于 2018-6-5 09:34
用PECMD来做只需要两句命令:

PART -iv=3 list drv %SystemDrive%,&a

请教五大:
我写了一段脚本用来共享文件夹,并且把脚本置入PECMD.exe中,至此使用正常。
脚本需要用到NTRights.exe这个小程序,请问如何将NTRights.exe也置入PECMD.exe中,然后如何在脚本中调用它
作者: 527104427    时间: 2018-6-6 12:24
Anson4 发表于 2018-6-6 10:52
请教五大:
我写了一段脚本用来共享文件夹,并且把脚本置入PECMD.exe中,至此使用正常。
脚本需要用到N ...

可以内置到exedata#1#2052
使用命令exec =*#1  来执行
作者: Anson4    时间: 2018-6-6 14:53
527104427 发表于 2018-6-6 12:24
可以内置到exedata#1#2052
使用命令exec =*#1  来执行

我试试看,感谢回复!




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