我在Windows上创建一个小的perl脚本。 我想确定Windows的版本,即XP,Vista,7,8等。 我如何获取此信息? 谢谢。使用perl确定Microsoft Windows的版本?
更新:我想知道运行脚本的Windows版本! 请加入一些关于如何使用API的代码,因为我是初学者&对perl不太了解。
我在Windows上创建一个小的perl脚本。 我想确定Windows的版本,即XP,Vista,7,8等。 我如何获取此信息? 谢谢。使用perl确定Microsoft Windows的版本?
更新:我想知道运行脚本的Windows版本! 请加入一些关于如何使用API的代码,因为我是初学者&对perl不太了解。
尝试Win32:
#!/usr/bin/env perl
use 5.014;
use strict;
use warnings;
use Win32;
say Win32::GetOSDisplayName();
say for Win32::GetOSName();
say for Win32::GetOSVersion();
如果这还不够,你可以通过拨打Win32::APIGetVersionEx。
谢谢@Sinan,满足我的需求。 – 2013-04-25 06:25:31
对于版本> 6.2不起作用! GetVersionEx已弃用,win32模块也使用此Windows API。 :-( – 2016-12-14 13:36:49
从http://perldoc.perl.org/perlvar.html
$^o
操作系统下其中的Perl这个副本是 建,在配置过程中所确定的名称。例如 请参见perlport中的PLATFORMS。
该值与$ Config {'osname'} 相同。另请参阅配置和在 perlrun中记录的-V命令行开关。
在Windows平台中,$^O并不是很有帮助:因为它始终是MSWin32,所以它不会告诉我们在95/98/ME/NT/2000/XP/CE/.NET之间的区别。使用Win32 :: GetOSName()或 Win32 :: GetOSVersion()(请参阅Win32和perlport)区分 的变体。
我不是问在哪个平台上建perl! 我在问它运行的机器。 – 2013-04-24 10:20:19
这就是所谈论的。变量'$^O'包含这些信息。但是对于大多数Windows版本,它总是会返回“MSWin32”。因此,对于Windows,您将需要使用上述功能。这与建筑perl – Salgar 2013-04-24 10:38:52
无关你能告诉我如何使用这些功能吗? 我得到一些错误“未定义的子程序和Win32 :: GetOSName调用” – 2013-04-24 10:41:18
检查[this](http://stackoverflow.com/questions/334686/how-can-i-detect-the-operating-system-in-perl)一出。 – 2013-04-24 10:34:33
没有正确答案的选项给出所需的信息! – 2013-04-24 10:37:51