使用perl 检测硬盘信息-共勉

本文分享了一个使用Perl脚本检测系统中SSD盘逻辑盘符的方法。该脚本通过调用Win32 API获取磁盘信息,并判断磁盘类型。最终将检测结果保存到文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近案子比较棘手,需要编写perl脚本 检测系统中SSD盘的逻辑盘符。

研究了大半天,搞定。

现同大家分享,以作共勉。

 

用perl 实现同win32 ::OnDeviceChange一样 获取系统中磁盘信息的功能:

 

#vicky finished by 10-03-13 22:10

#!/usr/bin/perl

#use Win32::kernel32;
use win32;
use win32::api;
use Win32API::File 0.08 qw( :ALL );

 
my $total_disk=GetLogicalDriveStrings(4*26+1,$osBuffer);
my $len=length $osBuffer;
print "$len- $osBuffer/n";
my $rec_diskinfo="*** logical disk info ***/n";

for(my $index=0;$index<$len; $index += 4)
{
 my $getdrive= substr($osBuffer, $index, 2);
 $rec_diskinfo .="$getdrive-->";
 my $type = GetDriveType($getdrive);
 if( $type==1)

    { $rec_diskinfo .="The root directory does not  exist/n";next; }
 if( $type==2){ $rec_diskinfo .="floppy drive/n";next; }
 if( $type==3){ $rec_diskinfo .="fixed drive/n"; $savdisk=$getdrive;next;}
 if( $type==4){ $rec_diskinfo .= "remote (network) drive/n";next; }
 if( $type==5){ $rec_diskinfo .="CD-ROM drive/n";next; }
 if( $type==6){ $rec_diskinfo .="A RAM disk/n";next; }
 if( $type<=0||$type>6){ $rec_diskinfo .= "UNKNOWN Disk/n";next; }
}

open DRVIF,">f://logicaldisk.inf"||die "can save logical disk info";
printf DRVIF $rec_diskinfo ;
close DRVIF;

 

 

PS:

 以上代码测试OK.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值