我正在使用:
$serial = shell_exec('wmic DISKDRIVE GET SerialNumber 2>&1');
但是有了这个,我得到了所有硬盘的序列号,我只想要主硬盘的序列号,在我的情况下是“ c”。 我尝试过:
wmic path win32_diskdrive where deviceid="\\\\.\\PHYSICALDRIVE0" get serialnumber
它在Windows控制台中工作正常,但我尝试将其与exec
一起使用,如下所示:
$serial = exec('wmic path win32_diskdrive where deviceid="\\\\.\\PHYSICALDRIVE0" get serialnumber');
但是我只得到“”
答案 0 :(得分:2)
exec
仅返回输出的最后一行。给它提供输出参数,然后在每行中填充它,或者使用shell_exec
代替。同时将您的backslashes加倍,以使它们正确逃脱。例如:
exec('wmic path win32_diskdrive where deviceid="\\\\\\\\.\\\\PHYSICALDRIVE0" get serialnumber', $out);
var_dump($out);
或
$serial = shell_exec('wmic path win32_diskdrive where deviceid="\\\\\\\\.\\\\PHYSICALDRIVE0" get serialnumber');