如何让我的Perl脚本检测到它在64位Windows机器上运行,即使它是32位的perl?我的Perl脚本如何知道它在Win64下运行?
3
A
回答
6
请参阅this question。您检查%PROCESSOR_ARCHITECTURE%
环境变量。
4
感谢本·
从问题的链接,你链接到:msdn blog on how to dectect process bitness
产生如下代码: 打印 “WIN64?:$ ENV {PROCESSOR_ARCHITECTURE} \ n”; print“WIN64?:$ ENV {PROCESSOR_ARCHITEW6432} \ n”;
而下面的输出(XP64 32位的perl)
WIN64?:86
WIN64?:AMD64
看来,如果你正在运行在64位赢得一个32位的应用程序,你将需要引用PROCESSOR_ARCHITEW6432。
1
另一种方法,虽然涉及更多一点,但会检查Windows API函数IsWow64Process
。在this question的答案中给出了一个如何做到这一点的例子(在Delphi中)。
3
if (($ENV{'PROCESSOR_ARCHITECTURE'} eq "AMD64") or
($ENV{'PROCESSOR_ARCHITEW6432'} eq "AMD64")) {
$arch = "win64";
} else {
$arch = "win32";
}
参考: http://blogs.msdn.com/b/david.wang/archive/2006/03/26/howto-detect-process-bitness.aspx
0
my @CPUIdentifierArray = split ' ', $ENV{PROCESSOR_IDENTIFIER};
my %ArcHash = ('x86' => 32, 'AMD64' => 64, 'Intel64' => 64);
my $Arch = $ArcHash{$CPUIdentifierArray[0]};
它返回32或64
相关问题
- 1. shell脚本如何知道它在Solaris区域中运行?
- 2. 如何知道我是否在perl脚本中运行64位或32位Linux?
- 3. 我如何知道perl脚本是如何启动的?
- 4. 我如何知道脚本是否在iframe中运行
- 5. 如何在Perl脚本中运行Perl脚本?
- 6. 如何从cron运行的Perl脚本中运行shell脚本?
- 7. 如何知道正在运行的脚本是否死亡?
- 8. 我如何知道我正在运行的Android ndk版本
- 9. 运行Perl脚本
- 10. 如何知道bash脚本是否正在运行nohup?
- 11. 我如何知道在Windows中运行的是哪些python脚本?
- 12. 如何知道我的脚本正在运行哪个Python实例?
- 13. 我如何知道我正在运行哪个WPF版本?
- 14. 如何知道python运行脚本的路径?
- 15. 我如何知道我运行的是哪个版本的RichFaces?
- 16. 如何运行通过perl脚本
- 17. 我如何知道当前正在运行的node.js版本?
- 18. bash脚本如何知道它在何时被安装的目录。运营商?
- 19. 我如何知道外部js文件在html页面中运行脚本
- 20. 批处理脚本,如何知道我们正在系统用户上运行
- 21. 我在shell脚本中运行程序。我如何知道它是否已加载? (Linux)
- 22. 如何运行这个perl脚本来在MongoDB上运行?
- 23. 如何从Cmd运行Perl脚本而不在脚本路径前键入“perl”?
- 24. 如何知道FastCGI是否被用来运行PHP脚本
- 25. 从Perl脚本运行Python脚本
- 26. 我该如何运行需要root权限的perl脚本?
- 27. 我们如何知道脚本的执行时间? OOP
- 28. 运行perl cgi脚本problec
- 29. Cronjobs未运行perl脚本?
- 30. 如何从perl脚本本身打印出正在运行的perl版本?