无忧启动论坛

 找回密码
 注册
搜索

有没有显示磁盘类型的命令行工具?

查看数: 11517 | 评论数: 42 | 收藏 3
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-11-10 14:55

正文摘要:

本帖最后由 liuzhaoyzz 于 2020-11-10 15:02 编辑 有没有显示磁盘类型的命令行工具? 遍历所有的盘符,并且显示出其磁盘类型,磁盘类型有: GetDriveType函数#GetDriveType函数用于判断一个磁盘驱动器的类型。 ...

回复

CodeHz 发表于 2020-11-20 11:08:44
liuzhaoyzz 发表于 2020-11-20 08:16
我尝试用vs2015编译这个程序,想请问下大神,这一句出错了,应该怎么修改?
char buf[] = "?:\";
提示 ...

hmmm,多加一个\
char buf[] = "?:\\"

点评

我用visual studio2015静态编译了下,平台工具集选择v140_xp模式,亲测支持XP WIN10。通过了360流氓卫士的检测。看样子VC编译的程序,360识别的好呀!不会误报。 上传源代码和编译后的exe程序。  详情 回复 发表于 2020-11-20 13:35
好的  发表于 2020-11-20 11:25
liuzhaoyzz 发表于 2020-11-20 08:16:54
CodeHz 发表于 2020-11-10 16:47
源码在这里,顺便改进了下,把更多的细节属性都暴露了

我尝试用vs2015编译这个程序,想请问下大神,这一句出错了,应该怎么修改?
char buf[] = "?:\";
提示没有右引号。

点评

hmmm,多加一个\ char buf[] = "?:\\"  详情 回复 发表于 2020-11-20 11:08
liuzhaoyzz 发表于 2020-11-20 06:51:13
本帖最后由 liuzhaoyzz 于 2020-11-20 11:26 编辑

2020.11.20版本,似乎360不报了。感谢5大!顺便说下,2020.11.20版本,32位的加壳报毒,不加壳的原始文件不报毒(编辑)。
liuzhaoyzz 发表于 2020-11-19 22:58:23
本帖最后由 liuzhaoyzz 于 2020-11-19 23:03 编辑
527104427 发表于 2020-11-19 20:27
再给你增强一下ChkMbrPbr吧,来个一箭四雕。 -ChkAllDrvType 列出所有磁盘,  -ChkDrvType  L:  仅列出L ...


        感谢5大出手!chkmbrpbr32位的发给别人总是被360干掉可有解决办法?给小白解释没有病毒和风险太累了,所以我更喜欢VC编译的小程序。我曾经在360病毒误报网站反馈,结果客服回复还是不给过,说是有风险,好郁闷,这世道就是流氓当道!

点评

试试不加壳的:ChkMbrPbr_x86_原始.exe 如果还不行,那没办法了。PECMD应该也是VC写的吧  详情 回复 发表于 2020-11-19 23:30
liuzhaoyzz 发表于 2020-11-19 15:45:33
CodeHz 发表于 2020-11-19 15:39
这个错误看起来就是用了64位的版本,但是xp是32位的(360误报这个我不负责解决,这事得交保护费

        哦,看了下,drivetype果然是64位PE文件。恳请楼主编译个32位的。

点评

再给你增强一下ChkMbrPbr吧,来个一箭四雕。 -ChkAllDrvType 列出所有磁盘, -ChkDrvType L: 仅列出L盘  详情 回复 发表于 2020-11-19 20:27
CodeHz 发表于 2020-11-19 15:39:41
liuzhaoyzz 发表于 2020-11-19 15:33
1、还要友情楼主出手下,这个程序,不支持xp吗?能否做静态编译?我在xp里面试了下无法运行啊?  ...

这个错误看起来就是用了64位的版本,但是xp是32位的(360误报这个我不负责解决,这事得交保护费

点评

哦,看了下,drivetype果然是64位PE文件。恳请楼主编译个32位的。  详情 回复 发表于 2020-11-19 15:45
liuzhaoyzz 发表于 2020-11-13 08:12:08
红毛樱木 发表于 2020-11-12 16:36

换成
再把PECMD.exe换成PECMD原始_cli.EXE          (在PECMD包里)

哦,试了下,可以了!
红毛樱木 发表于 2020-11-12 16:36:54
liuzhaoyzz 发表于 2020-11-11 08:19
代码准确,谢谢!

另外想问下,怎么搞成命令行的?


  1. MESS. %&ALLInfos%
复制代码
换成
  1. WRIT *fv --,$+0,&ALLInfos
复制代码
再把PECMD.exe换成PECMD原始_cli.EXE          (在PECMD包里)
效果

点评

哦,试了下,可以了!  详情 回复 发表于 2020-11-13 08:12
plusv 发表于 2020-11-12 15:53:27
slore 发表于 2020-11-12 09:47
complete是批处理(lua脚本)里面的,随便改不用编译。就是个例子可以写个Windows API的库封装,用脚本调用 ...

通常我会先看 Readme,
会有编译的说明,
当看到要用 MS VS 去编译,我就会,
除非我非常喜欢那个程序.

当看到要是纯 C 我第一时间是比较开心的,
因为不用动用大家伙.
slore 发表于 2020-11-12 09:47:47
liuzhaoyzz 发表于 2020-11-12 07:25
代码还需要改进下,没有把本地硬盘和移动硬盘区分开来,都显示的是fixed。
complate拼写应该是complete ...

complete是批处理(lua脚本)里面的,随便改不用编译。就是个例子可以写个Windows API的库封装,用脚本调用。做小工具比较方便。lua和lib是C语言,集成到任何程序都很容易,体积也不增加多少。

因为是C语言,只需要TCC(Tiny C Compiler)就可以编译。TCC不到500kb。没必要用Visual Studio。

点评

通常我会先看 Readme, 会有编译的说明, 当看到要用 MS VS 去编译,我就会懒, 除非我非常喜欢那个程序. 当看到要是纯 C 我第一时间是比较开心的, 因为不用动用大家伙.  详情 回复 发表于 2020-11-12 15:53

评分

参与人数 1无忧币 +5 收起 理由
smss + 5 能和 PowerShell的Get-PhysicalDisk一样吗

查看全部评分

liuzhaoyzz 发表于 2020-11-12 09:00:20
CodeHz 发表于 2020-11-12 08:40
这也是我整tjs的一个目的,目前可以算是半个c语言开发环境了(当然兼容现有项目不是我的目标,这个整下去 ...

不明觉厉!
CodeHz 发表于 2020-11-12 08:40:38
liuzhaoyzz 发表于 2020-11-12 07:27
有时候搭建编译环境挺麻烦的,不同的Visual studio版本什么的。有时候出错挺麻烦。

这也是我整tjs的一个目的,目前可以算是半个c语言开发环境了(当然兼容现有项目不是我的目标,这个整下去没完)

点评

不明觉厉!  详情 回复 发表于 2020-11-12 09:00
plusv 发表于 2020-11-12 08:16:38
liuzhaoyzz 发表于 2020-11-12 07:27
有时候搭建编译环境挺麻烦的,不同的Visual studio版本什么的。有时候出错挺麻烦。

说的没错.
通常 非必要 或 非常喜欢那个程序 我也是懒的去编译,
我的 10 余年老 PC 不给力这样大工程,老 PC 会归西.

liuzhaoyzz 发表于 2020-11-12 07:27:38
plusv 发表于 2020-11-11 21:40
>github上面,我没有看到release版本的exe文件啊?

github上面,通常要自己编译为 EXE.

有时候搭建编译环境挺麻烦的,不同的Visual studio版本什么的。有时候出错挺麻烦。

点评

这也是我整tjs的一个目的,目前可以算是半个c语言开发环境了(当然兼容现有项目不是我的目标,这个整下去没完)  详情 回复 发表于 2020-11-12 08:40
说的没错. 通常 非必要 或 非常喜欢那个程序 我也是懒的去编译, 我的 10 余年老 PC 不给力这样大工程,老 PC 会归西.  详情 回复 发表于 2020-11-12 08:16
slore 发表于 2020-11-11 23:18:46
liuzhaoyzz 发表于 2020-11-11 17:06
没有看明白,lua环境是怎么调用的?winapi怎么用?怎么运行?github上面,我没 ...

lua.exe你可以从

https://sourceforge.net/projects/luabinaries/files/5.4.0/Tools%20Executables/

下载。

winpai.dll需要自己编译。。。

WinXShell.exe已经把lua和winapi.dll编译了,上面的代码可以 -script xxx.lua 执行,
但是WinXShell.exe是Windows程序,输出外部程序捕获不到,
lua中写文件,或者lua代码处理都可以。

给你个附件,你双击运行就可以了。

lua_winapi.7z (1.79 MB, 下载次数: 14)

最新版是5.4,但是我的winapi.dll是当时5.3版本,所以需要5.3的lua.exe
plusv 发表于 2020-11-11 21:40:15
liuzhaoyzz 发表于 2020-11-11 17:06
没有看明白,lua环境是怎么调用的?winapi怎么用?怎么运行?github上面,我没 ...

>github上面,我没有看到release版本的exe文件啊?

github上面,通常要自己编译为 EXE.

点评

有时候搭建编译环境挺麻烦的,不同的Visual studio版本什么的。有时候出错挺麻烦。  详情 回复 发表于 2020-11-12 07:27
liuzhaoyzz 发表于 2020-11-11 17:06:22
本帖最后由 liuzhaoyzz 于 2020-11-11 17:08 编辑

没有看明白,lua环境是怎么调用的?winapi怎么用?怎么运行?github上面,我没有看到release版本的exe文件啊?

点评

lua.exe你可以从 https://sourceforge.net/projects/luabinaries/files/5.4.0/Tools%20Executables/ 下载。 winpai.dll需要自己编译。。。 WinXShell.exe已经把lua和winapi.dll编译了,上面的代码可以  详情 回复 发表于 2020-11-11 23:18
>github上面,我没有看到release版本的exe文件啊? github上面,通常要自己编译为 EXE.  详情 回复 发表于 2020-11-11 21:40
liuzhaoyzz 发表于 2020-11-11 08:20:09
9zhmke 发表于 2020-11-10 18:07
VBS也很简单,把里面查硬盘的DriveType从多换成1就是U盘了。

VBS适用性不太好,有的PE里面没有。
永远的大象 发表于 2020-11-10 21:57:38
fbinst
slore 发表于 2020-11-10 21:15:38
本帖最后由 slore 于 2020-11-10 21:18 编辑

https://github.com/stevedonovan/ ... irectory-operations

  1. drives = winapi.get_logical_drives()
  2. for _, drive in ipairs(drives) do
  3.     print(drive .. '  ' .. winapi.get_drive_type(drive))
  4. end
复制代码





  1. C:\  fixed
  2. D:\  fixed
  3. E:\  fixed
  4. F:\  fixed
  5. H:\  cdrom
  6. I:\  cdrom
  7. K:\  removable
  8. Z:\  fixed
复制代码


lua可以自由扩展C函数,API, 封装。

https://github.com/stevedonovan/winapi/blob/master/winapi.c#L2228

点评

没有看明白,lua环境是怎么调用的?winapi[/backcolor]怎么用?怎么运行?[/backcolor][/backcolor]  详情 回复 发表于 2020-11-11 17:06
9zhmke 发表于 2020-11-10 18:07:58
本帖最后由 9zhmke 于 2020-11-10 18:25 编辑

VBS也很简单,把里面查硬盘的DriveType从多换成1就是U盘了。

  1. Set colDrives = CreateObject("Scripting.FileSystemObject").Drives
  2. For Each objDrive in colDrives
  3.    if objDrive.DriveType=2 then '0:"未知"/1:"可移动"/2:"固定"/3:"网络"/4:"CD-ROM"/5:"RAM 磁盘"
  4.                 msgbox objDrive.DriveLetter
  5.    end if
  6. Next
复制代码


disk.7z (333 Bytes, 下载次数: 4)
如果想直接写到批处理中,这样写可以直接列出磁盘列表,前面是类型,后面字母是盘号:

  1. mshta VBScript:Execute("For Each objDrive in CreateObject(""Scripting.FileSystemObject"").Drives:msgbox objDrive.DriveType&objDrive.DriveLetter:Next:close")
复制代码

点评

VBS适用性不太好,有的PE里面没有。  详情 回复 发表于 2020-11-11 08:20
caocaofff 发表于 2020-11-10 17:52:34
红毛樱木 发表于 2020-11-10 17:15
B站直播间地址:https://live.bilibili.com/22611892
B站帐号:系统总裁官方帐号
每天下午不定时直播,固 ...

支持推广PECMD
红毛樱木 发表于 2020-11-10 17:15:11
  1. ENVI^ EnviMode=1
  2. ENVI$ &NL=0d 0a
  3. ENVI$ &TAB=09
  4. ENVI &AllInfos=
  5. FDRV &AllDrvs=*:
  6. FORX *v &AllDrvs,&Drv,
  7. {*
  8.     FORM ,&BUSNAME=%&Drv%
  9.     CALL Translation_STORAGE_BUS_TYPE %&BUSNAME% &BUSNAMEType
  10.     ENVI< &ALLInfos=%&Drv%%&TAB%%&&BUSNAMEType%%&NL%
  11. }
  12. MESS. %&ALLInfos%

  13. _SUB Translation_STORAGE_BUS_TYPE
  14.     ^IFEX $%1=0, TEAM ENVI-ret %2=Unknown| EXIT _SUB
  15.     ^IFEX $%1=1, TEAM ENVI-ret %2=Scsi| EXIT _SUB
  16.     ^IFEX $%1=2, TEAM ENVI-ret %2=Atapi| EXIT _SUB
  17.     ^IFEX $%1=3, TEAM ENVI-ret %2=Ata| EXIT _SUB
  18.     ^IFEX $%1=4, TEAM ENVI-ret %2=1394| EXIT _SUB
  19.     ^IFEX $%1=5, TEAM ENVI-ret %2=Ssa| EXIT _SUB
  20.     ^IFEX $%1=6, TEAM ENVI-ret %2=Fibre| EXIT _SUB
  21.     ^IFEX $%1=7, TEAM ENVI-ret %2=Usb| EXIT _SUB
  22.     ^IFEX $%1=8, TEAM ENVI-ret %2=RAID| EXIT _SUB
  23.     ^IFEX $%1=9, TEAM ENVI-ret %2=iScsi| EXIT _SUB
  24.     ^IFEX $%1=10, TEAM ENVI-ret %2=Sas| EXIT _SUB
  25.     ^IFEX $%1=11, TEAM ENVI-ret %2=Sata| EXIT _SUB
  26.     ^IFEX $%1=12, TEAM ENVI-ret %2=Sd| EXIT _SUB
  27.     ^IFEX $%1=13, TEAM ENVI-ret %2=Mmc| EXIT _SUB
  28.     ^IFEX $%1=14, TEAM ENVI-ret %2=Virtual| EXIT _SUB
  29.     ^IFEX $%1=15, TEAM ENVI-ret %2=FileBackedVirtual| EXIT _SUB
  30.     ^IFEX $%1=16, TEAM ENVI-ret %2=Spaces| EXIT _SUB
  31.     ^IFEX $%1=17, TEAM ENVI-ret %2=Nvme| EXIT _SUB
  32.     ^IFEX $%1=18, TEAM ENVI-ret %2=SCM| EXIT _SUB
  33.     ^IFEX $%1=19, TEAM ENVI-ret %2=Ufs| EXIT _SUB
  34.     ^IFEX $%1=20, TEAM ENVI-ret %2=Max| EXIT _SUB
  35.     ^IFEX $%1=0x7F, TEAM ENVI-ret %2=MaxReserved| EXIT _SUB
  36. _END
复制代码
B站直播间地址:https://live.bilibili.com/22611892
B站帐号:系统总裁官方帐号
每天下午不定时直播,固定直播时间每周五晚八点
欢迎各位PECMD开发爱好者一起交流学习

点评

代码准确,谢谢!  详情 回复 发表于 2020-11-11 08:19
支持推广PECMD  详情 回复 发表于 2020-11-10 17:52
liuzhaoyzz 发表于 2020-11-10 17:06:53
红毛樱木 发表于 2020-11-10 17:06
自己再套代码呀。要搞全套吗?

我是pecmd白痴啊,楼上的两个方案都能够达到目的。
红毛樱木 发表于 2020-11-10 17:06:33
liuzhaoyzz 发表于 2020-11-10 17:04
不能遍历所有盘符,然后显示具体类型吗?

自己再套代码呀。要搞全套吗?

点评

我是pecmd白痴啊  详情 回复 发表于 2020-11-10 17:06

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 19:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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