2014-12-13 186 views
0

我試圖寫入一個文件,並且我有一個if語句來檢測用戶是使用64位還是32位操作系統。我曾經嘗試這樣做,如果操作系統是64位

write.bat (它使應用程序數據文件夾中的VBS文件)

if defined ProgramFiles(x86) (
color 2 
) else (
color 3 
) 

這完美的作品。但是,當寫入文件時,它奇怪地嘗試寫入兩個文件!

if defined ProgramFiles(x86) (

find "lnk.targetpath = ""C:\Program Files (x86)\Google\Chrome\Application\chrome.exe""" %APPDATA%\System.vbs || echo lnk.targetpath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe">>%APPDATA%\System.vbs 

    ) else (

find "lnk.targetpath = ""C:\Program Files\Google\Chrome\Application\chrome.exe""" %APPDATA%\System.vbs || echo lnk.targetpath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe">>%APPDATA%\System.vbs 

    ) 

我該如何解決這個問題?

+3

你必須在'else'條款的'echo'部分錯誤的值。在這兩種情況下,您將回應相同的價值。 – 2014-12-13 08:41:59

回答

2

試試這個vbscript來檢查用戶是否使用64位或32位操作系統。

'un vbscript qui détermine automatiquement le type de votre système d'exploitation 
Copyright = " © Hackoo © 2014" 
MsgFr = "Le type de votre système d'exploitation " 
MsgAr = ChrW(1606)&ChrW(1608)&ChrW(1593)&ChrW(32)&ChrW(1606)&ChrW(1592)&ChrW(1575)&ChrW(1605)&ChrW(32)&_ 
ChrW(1575)&ChrW(1604)&ChrW(1578)&ChrW(1588)&ChrW(1594)&ChrW(1610)&ChrW(1604)&ChrW(32)&ChrW(1575)&ChrW(1604)&_ 
ChrW(1582)&ChrW(1575)&ChrW(1589)&ChrW(32)&ChrW(1576)&ChrW(1603) 
If Is64Bit = False then 
    MsgBox MsgFr & MsgAr & VbCrLF & "32 bits" ,Vbinformation,MsgFr & MsgAr & Copyright 
else 
    Msgbox MsgFr & MsgAr & VbCrLF & "64 bits",Vbinformation,MsgFr & MsgAr & Copyright 
End if 
'************************************************************************************************************** 
Function Is64Bit() 
    Is64Bit = False 
    Dim colOS : Set colOS = GetObject("WinMGMTS://").ExecQuery("SELECT AddressWidth FROM Win32_Processor",, 48) 
    Dim objOS 
    For Each objOS In colOS 
     If objOS.AddressWidth = 64 Then Is64Bit = True 
    Next 
End Function 
'*************************************************************************************************************** 

在批你可以給這樣的嘗試:

@echo off 
wmic cpu get addresswidth | find "32" >nul && echo systeme 32 bit || echo systeme 64 bit 
pause 
相關問題