我在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