/build/static/layout/Breadcrumb_cap_w.png

Program Files and Program Files (x86)

Hi all,

I am a novice when it comes to scripting and I am having the toughest time getting this to work. 

Baisclly, I am trying to install a package silently and after the install, I need a .ini to be copied to the correct location in the program files folder. Our enviroment is 32 bit and 64 bit. I had a simple script that worked but I was copying to "C:\Program Files\App" worked good on everything expect 64 bit systems because the files are in Program Files (x86).

Tried using the script below, but I could not get it to work... anyone have any ideas? Would greatly appreictae it.

 

@ECHO OFF 

Set objFSO = CreateObject("Scripting.FileSystemObject")
If objFSO.FolderExists("c:\program files (x86)") Then
Session.Property("ProgramFiles") = "c:\program files (x86)"
Else
Session.Property("ProgramFiles") = "c:\program files"
End If 
start /wait xcopy "Config.ini" “[ProgramFiles]\App\” /y
 

 

 


0 Comments   [ + ] Show comments

Answers (2)

Posted by: EbrithilBowser 11 years ago
Fourth Degree Green Belt
0

You just have to use %ProgramFiles% for C:\Program Files or %ProgramFiles(x86)% for C:\Program Files (x86) on a 64bit System

Posted by: EdT 11 years ago
Red Belt
0

Here is a script that I wrote using a function created by Darwin Sanoy, which is referenced in the code should you wish to look it up. I use this script to check if the OS is 32 bit or 64 bit whenever such a requirement as yours exists.

However, can you not just add your ini file to the MSI via a transform and let the MSI sort out the 32 bit placement automatically?

'Check whether the OS is 32 bit or 64 bit
'Written by EdT with credit to Darwin Sanoy for function used.
'Initial Release 19/02/2013

Dim WshShell, ret, reg32, reg64,ProdCode,DisplayName, dnv, bits
On Error Resume Next
Set WshShell = CreateObject("WScript.Shell")
bits = CSI_GetBitness("OS")

wscript.quit (bits)

'*  Name:            CSI_GetBitness.vbs
'*  Author:          Darwin Sanoy
'*  Updates:         http://csi-windows.com/community
'*  Bug Reports &
'*  Enhancement Req: http://csi-windows.com/contactus

'wscript.echo "The CSI_GetHWBits function reports that your Hardware is " & CSI_GetBitness("Hardware") & " Bits"
'wscript.echo "The CSI_GetOSBits function reports that your Windows OS is " & CSI_GetBitness("OS") & " Bits"
'wscript.echo "The CSI_GetProcBits function reports that your process is running as " & CSI_GetBitness("Process") & " Bits"

Function CSI_GetBitness(Target)
'CSI_GetBitness Function - updates at http://csi-windows.com.
' All bitness checks in one function

  Select Case Ucase(Target)
   
    Case "OS", "WINDOWS", "OPERATING SYSTEM"
      CSI_GetBitness = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").AddressWidth
   
    Case "HW", "HARDWARE"
      CSI_GetBitness = GetObject("winmgmts:root\cimv2:Win32_Processor='cpu0'").DataWidth
   
    Case "PROCESS", "PROC"
      'One liner to retrieve process architecture string which will reveal if running in 32bit subsystem
      ProcessArch = CreateObject("WScript.Shell").Environment("Process")("PROCESSOR_ARCHITECTURE")
      If lcase(ProcessArch) = "x86" Then
        CSI_GetBitness = 32
      Else
        If instr(1,"AMD64,IA64",ProcessArch,1) > 0 Then
          CSI_GetBitness = 64
        Else
          CSI_GetBitness = 0 'unknown processor architecture
        End If
      End If
     Case Else
       CSI_GetBitness = 999 'unknown Target item (OS, Hardware, Process)
  End Select

End Function

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

View more:

Share

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ