Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

My question is on the subject line.

Thank You
Chris
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default How do I set an environment variable to a string

We need more info than that. What exactly are you wanting to do...

dim str as string

str = environ("userName")
msgbox str

--
HTH...

Jim Thomlinson


"ChristopherL" wrote:

My question is on the subject line.

Thank You
Chris

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 108
Default How do I set an environment variable to a string

Says here there's an Environ function you can use, eg vx = Environ("PATH").

--- "ChristopherL" wrote:
How do I set an environment variable to a string

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 12, 6:10*pm, Bob Bridges
wrote:
Says here there's an Environ function you can use, eg vx = Environ("PATH").



--- "ChristopherL" wrote:
How do I set an environment variable to a string- Hide quoted text -


- Show quoted text -


Sorry, I need to clarify my question. I did not want to determine the
contents of an environment variable! What I want to do is be able to
go out to the "command prompt" and set an arbitrary environment
variable.

I tried the following, but VBA tells me the path to the command was
not found:

dim ev_result as string

en_result = shell ("""set chris=1 2 3""")

The 3 sets of double quotes is to try to simulate doing the following
in a command prompt window: set chris="1 2 3".

Again, I want to set an environment variable within VBA.

Thank you,
Chris
  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 12:12*am, ChristopherL wrote:
On Aug 12, 6:10*pm, Bob Bridges
wrote:

Says here there's an Environ function you can use, eg vx = Environ("PATH").


--- "ChristopherL" wrote:
How do I set an environment variable to a string- Hide quoted text -


- Show quoted text -


Sorry, I need to clarify my question. I did not want to determine the
contents of an environment variable! What I want to do is be able to
go out to the "command prompt" and set an arbitrary environment
variable.

I tried the following, but VBA tells me the path to the command was
not found:

dim ev_result as string

en_result = shell ("""set chris=1 2 3""")

The 3 sets of double quotes is to try to simulate doing the following
in a command prompt window: set chris="1 2 3".

Again, I want to set an environment variable within VBA.


Sorry again, I think I have a partial solution, if not a complete
solution! I'll try it tomorrow. Please critique me

dim ev_result as string

ev_result = shell ("\cmd ""set chris=1 2 3""")

en_result = Environ ("chris")
'en_result should be "1 2 3"

Thank you everyone in VBA land,
Chris



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 108
Default How do I set an environment variable to a string

Ah, right you are; I misread the question, reversing the subject and
predicate. Ok, I know I've run across this somewhere; I think it's a
property of one of those COM objects like wscript or WSH or something.

....Ah, here it is. Well, maybe it is. Try this:

Set ows = WScript.CreateObject("WScript.Shell")
Set oEnv = ows.Environment("SYSTEM")
oEnv("PATH") = oEnv("PATH") & ";c:\Utils"

I got this sequence from
http://msdn.microsoft.com/en-us/libr...a0(VS.85).aspx, except it
mentions only display without saying whether you can also change the
environment variable. Give it a try; maybe it'll work.

--- "ChristopherL" wrote:
Sorry, I need to clarify my question. I did not want to determine the
contents of an environment variable! What I want to do is be able to
go out to the "command prompt" and set an arbitrary environment
variable.

I tried the following, but VBA tells me the path to the command was
not found:

dim ev_result as string
en_result = shell ("""set chris=1 2 3""")

The 3 sets of double quotes is to try to simulate doing the following
in a command prompt window: set chris="1 2 3".


On Aug 12, 6:10 pm, Bob Bridges
wrote:
Says here there's an Environ function you can use, eg vx = Environ("PATH").


--- "ChristopherL" wrote:
How do I set an environment variable to a string- Hide quoted text -

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default How do I set an environment variable to a string

The environment variable would be alive as long as the Shell is alive--but it's
limited to that shell and its children.

So if you need to run a .bat file that needs an environment variable, you could
shell to a different .bat file that sets the environment variable and then runs
the .bat file that you need to run.

But if you want to change the environment variable globally, it's a different
story.

Win95 came with command called WinSet that did this. But I don't see it in
WinXP (at least in a normal install).

But you could search google looking for alternatives.

I've never used this, but it looks interesting:
http://www.codeguru.com/cpp/w-p/win3...le.php/c10849/

ChristopherL wrote:

I modified test5 to make the shell command wait till the command
completes, but was rewarded with the same results, nothing printed!
Chris

(5) The following did not work either:

Sub test5()

Dim ev_result As String

ev_result = Shell("cmd /c set chris=""1 2 3""")
ev_result = Environ("chris")

Debug.Print ev_result '---Prints Nothing!

End Sub


--

Dave Peterson
  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 7:31*am, Dave Peterson wrote:
The environment variable would be alive as long as the Shell is alive--but it's
limited to that shell and its children.

So if you need to run a .bat file that needs an environment variable, you could
shell to a different .bat file that sets the environment variable and then runs
the .bat file that you need to run.

But if you want to change the environment variable globally, it's a different
story. *

Win95 came with command called WinSet that did this. *But I don't see it in
WinXP (at least in a normal install).

But you could search google looking for alternatives.

I've never used this, but it looks interesting:http://www.codeguru.com/cpp/w-p/win3...le.php/c10849/

....

Dave Peterson- Hide quoted text -

- Show quoted text -


Dave, I tried the following, but in the command prompt window it
said:

'%chris%' is not recognized as an internal or external
command, operable program or batch file.
Chris

Sub test6()

Dim count As Long
Dim ev_result As String

Row = 30

count = 0

ev_result = Wait_("cmd /k set chris=""1 2 3"" & %chris%", "", False,
True)
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

Debug.Print "end"
End Sub
  #9   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

Dave, in the interest of saving time, here is a basic test. It gives
the same results.The command prompt window said:

'%chris%' is not recognized as an internal or external
command, operable program or batch file.

Chris


Sub test7()

Dim count As Long
Dim ev_result As String

Row = 30

count = 0

ev_result = Shell("cmd /k set chris=""1 2 3"" & %chris%")
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

Debug.Print "end"
End Sub

  #10   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default How do I set an environment variable to a string

I don't understand what this:
ev_result = Wait_("cmd /k set chris=""1 2 3"" & %chris%", "", False, True)
is doing.

And I don't understand what you're really trying to do.

Are you trying to create an environment variable that's available for just the
duration of that Shell command--and only available to the that Shell?

Or are you trying to create an environment variable that can be seen by
anything?



ChristopherL wrote:

On Aug 13, 7:31 am, Dave Peterson wrote:
The environment variable would be alive as long as the Shell is alive--but it's
limited to that shell and its children.

So if you need to run a .bat file that needs an environment variable, you could
shell to a different .bat file that sets the environment variable and then runs
the .bat file that you need to run.

But if you want to change the environment variable globally, it's a different
story.

Win95 came with command called WinSet that did this. But I don't see it in
WinXP (at least in a normal install).

But you could search google looking for alternatives.

I've never used this, but it looks interesting:http://www.codeguru.com/cpp/w-p/win3...le.php/c10849/

...

Dave Peterson- Hide quoted text -

- Show quoted text -


Dave, I tried the following, but in the command prompt window it
said:

'%chris%' is not recognized as an internal or external
command, operable program or batch file.
Chris

Sub test6()

Dim count As Long
Dim ev_result As String

Row = 30

count = 0

ev_result = Wait_("cmd /k set chris=""1 2 3"" & %chris%", "", False,
True)
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

Debug.Print "end"
End Sub


--

Dave Peterson


  #11   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 7:47*am, Dave Peterson wrote:
I don't understand what this:
ev_result = Wait_("cmd /k set chris=""1 2 3"" & %chris%", "", False, True)
is doing.

And I don't understand what you're really trying to do.

Are you trying to create an environment variable that's available for just the
duration of that Shell command--and only available to the that Shell?

Or are you trying to create an environment variable that can be seen by
anything?





ChristopherL wrote:

On Aug 13, 7:31 am, Dave Peterson wrote:
The environment variable would be alive as long as the Shell is alive--but it's
limited to that shell and its children.


So if you need to run a .bat file that needs an environment variable, you could
shell to a different .bat file that sets the environment variable and then runs
the .bat file that you need to run.


But if you want to change the environment variable globally, it's a different
story.


Win95 came with command called WinSet that did this. *But I don't see it in
WinXP (at least in a normal install).


But you could search google looking for alternatives.


I've never used this, but it looks interesting:http://www.codeguru.com/cpp/w-p/win3...le.php/c10849/


...


Dave Peterson- Hide quoted text -


- Show quoted text -


Dave, I tried the following, but in the command prompt window it
said:


* * * * * * * * '%chris%' is not recognized as an internal or external
command, operable program or batch file.
Chris


Sub test6()


* Dim count As Long
* Dim ev_result As String


* Row = 30


* count = 0


* ev_result = Wait_("cmd /k set chris=""1 2 3"" & %chris%", "", False,
True)
* ev_result = Environ("chris")


* Debug.Print "--- " & ev_result & " <---"


* Debug.Print "end"
End Sub


--

Dave Peterson- Hide quoted text -

- Show quoted text -



For every one who has not formally tuned in, I've added a few comments
to the test.
After executing the code, the command prompt windows stays around and
says:

'%chris%' is not recognized as an internal or external command,
operable program or batch file.

Chris

Sub test7()

Dim Task_ID As Variant
Dim ev_result As String

'Create shell execute a set command, and then see if can use the
contents of the variable
Task_ID = Shell("cmd /k set chris=""1 2 3"" & %chris%") '/k means
stay around, & means do 2nd cmd

'Give it another try, see if environment variable still exists
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

End Sub
  #12   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 7:47*am, Dave Peterson wrote:

....

And I don't understand what you're really trying to do.

Are you trying to create an environment variable that's available for just the
duration of that Shell command--and only available to the that Shell?

Or are you trying to create an environment variable that can be seen by
anything?


I want to set an environment variable and some how later use it's
contents in a program.

Chris


  #13   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 8:08*am, ChristopherL wrote:
On Aug 13, 7:47*am, Dave Peterson wrote:
And I don't understand what you're really trying to do.


Sub test8()

Dim Task_ID As Variant
Dim ev_result As String

'Create shell execute a set command, and then see if can use the
contents of the variable
Task_ID = Shell("cmd /k set chris=""1 2 3"" & %chris%")

'Give it another try, see if environment variable still exists
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

End Sub

After executing the code, the command prompt windows stays around and
says:

'%chris%' is not recognized as an internal or external command,
operable program or batch file.

But, I would have gotten "closer" to solving my problem if the error
had said:

'1 2 3' is not recognized as an internal or external command,
operable program or batch file.

This is because I was able to set an environment variable through VBA.

Sub test8()

Dim Task_ID As Variant
Dim ev_result As String

'Create shell execute a set command, and then see if can use the
'contents of the variable
Task_ID = Shell("cmd /k set chris=""1 2 3"" & %chris%")

'The /k means keep window around, an dthe & means do 2nd command in
same window

'Now, give it another try to see if environment variable still
exists
ev_result = Environ("chris")

Debug.Print "--- " & ev_result & " <---"

End Sub

That's all I want to do.
Chris
  #14   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default How do I set an environment variable to a string

On Aug 13, 7:31*am, Dave Peterson wrote:

But if you want to change the environment variable globally, it's a different
story. *


Dave and every one, I have to be able to change the environment
variable globally.

Chris


  #15   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default How do I set an environment variable to a string

Did you try the program at that url I posted?

ChristopherL wrote:

On Aug 13, 7:31 am, Dave Peterson wrote:

But if you want to change the environment variable globally, it's a different
story.


Dave and every one, I have to be able to change the environment
variable globally.

Chris


--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
using environment variable in macropath M. Mix Excel Programming 5 February 14th 07 08:26 PM
Environment Variable Names Chaplain Doug Excel Programming 3 April 20th 06 03:33 PM
Can you set a Window's Environment variable in VB Ken Soenen Excel Programming 3 March 12th 06 06:19 PM
Environment Variable Andibevan[_4_] Excel Programming 5 August 3rd 05 02:17 PM
How can I invoke windows environment variable in excel Bert van den Brink Excel Programming 0 August 6th 03 08:46 PM


All times are GMT +1. The time now is 07:10 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"