我知道这里有很多如何获得处理器架构的例子。
这应该在x64
上获得带有true或false检查的类型我的问题是:如何将此输出转换为if语句?
示例:如果是64位处理器,则执行几个步骤,如果是32位,则执行其他步骤。我怎么能继续下去?
我尝试了几个版本的代码,但也得到了真或假的回复,但是如何继续下去呢?
你可以帮助我吗?感谢
答案 0 :(得分:2)
谢谢大家。
我使用以下方法解决了这个问题:
$os_type = (Get-WmiObject -Class Win32_ComputerSystem).SystemType -match ‘(x64)’
if ($os_type -eq "True") {
Write-Host "i am an 64bit OS"
write-host $os_type }
else {
$os_type = (Get-WmiObject -Class Win32_ComputerSystem).SystemType -match ‘(x86)’
if ($os_type -eq "True") {
Write-Host "i am a 32 Bit OS" }
答案 1 :(得分:1)
[System.Environment]::Is64BitProcess
返回true或false,因此它是一个非常简单的if
语句。
if ([System.Environment]::Is64BitProcess) {
# Do 64-bit stuff
} else {
#Do 32-bit stuff
}
你没有具体说明"很多例子中的哪一个"你正在使用,所以我展示了我使用的方法。
答案 2 :(得分:0)
Alroc的回答适用于PowerShell 3.0或更高版本我相信。如果出现问题,另一种方法是:
$architecture = (Get-WmiObject win32_processor | Where-Object{$_.deviceID -eq "CPU0"}).AddressWidth
If ($architecture -eq 64) {
# Do 64-bit stuff
} else {
#Do 32-bit stuff
}
答案 3 :(得分:0)
感谢您的投入!
我试过这个例子:
感谢您的回答!我尝试了以下例子:
echo "check if 32 or 64bit OS"
$var = (Get-WmiObject -Class Win32_ComputerSystem).SystemType -match ‘(x64)’
if ($var = "True") {echo "i am an 64bit OS"
#setting the current directory as the directory the script is in
$sourcenssm= Split-Path -Parent $MyInvocation.MyCommand.Definition
#setting the targetdirectory for nssm
$targetnssm="C:\Users\cp\Desktop\nssm.exe"
#setting the current directory as the directory the script is in
$sourcewts= Split-Path -Parent $MyInvocation.MyCommand.Definition
#setting the targetdirectory for wtswatchdog
$targetwts="C:\Windows\wtswatchdog.exe"
#copying nssm to target - WORKING
if (-not(Test-path $targetnssm)) {Copy-item -Path $sourcenssm\nssm.exe -Destination $targetnssm}
#copying wtswatchdog to target - CHECK!
if (-not(Test-path $targetwts)) {Copy-item -Path $sourcewts\wtswatchdog.exe -Destination $targetwts}
}
但如果我正在检查
,它每次都会给我64位作为输出 echo "check if 32 or 64bit OS"
$var = (Get-WmiObject -Class Win32_ComputerSystem).SystemType -match ‘(x86)’
if ($var = "True") {echo "i am an 64bit OS"}
然后它也会进入echo-part。
答案 4 :(得分:0)
也可以使用环境变量。
let sessionConfiguration = TVSessionConfiguration(block: { builder in
builder?.sessionCode = "SESSION_CODE"
})