Technical support and scripting issues
Moderators: Dorian (MJT support), JRL
-
Grovkillen
- Automation Wizard
- Posts: 1081
- Joined: Fri Aug 10, 2012 2:38 pm
- Location: Bräcke, Sweden
-
Contact:
Post
by Grovkillen » Tue Aug 27, 2024 11:56 am
Save this and run it using F8 (step by step):
Code: Select all
Let>OUTPUT_file=%SCRIPT_DIR%\env.txt
Let>BATCH_file=%SCRIPT_DIR%\env.bat
Let>BATCH_code=set > "%OUTPUT_file%"
DeleteFile>BATCH_file
DeleteFile>OUTPUT_file
WriteLn>BATCH_file,,BATCH_code
ExecuteFile>%BATCH_file%
After running it, copy the contents of the env.txt file to (as an example)
https://www.diffchecker.com/text-compare/
Now run the env.bat file manually by clicking on it in the Windows Explorer. Copy the contents to the second field and do the compare.
I have these differences:
Code: Select all
Running as "myself":
CommonProgramFiles=C:\Program Files\Common Files
PROCESSOR_ARCHITECTURE=AMD64
ProgramFiles=C:\Program Files
Macro Scheduler:
CommonProgramFiles=C:\Program Files (x86)\Common Files
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
ProgramFiles=C:\Program Files (x86)
I have found that sometimes the expected output differ when running cmd using the "Run>" command. Could these differences be a result of the env being different?
Last edited by
Grovkillen on Tue Aug 27, 2024 12:22 pm, edited 1 time in total.
-
Grovkillen
- Automation Wizard
- Posts: 1081
- Joined: Fri Aug 10, 2012 2:38 pm
- Location: Bräcke, Sweden
-
Contact:
Post
by Grovkillen » Tue Aug 27, 2024 12:10 pm
Yes it does make a difference. I have a PowerShell script that uses a library, this library is 64-bit only I just found out. In order to get this to run at 64-bit I cannot rely on the good'ol:
Code: Select all
Let>PS_SYNTAX=Get-Date <---- this is just an example to show how I'm doing the PS invoke from CMD
Let>PS_PATH=cd "C:\Windows\System32\WindowsPowerShell\v1.0\" & chcp 65001 & powershell.exe
Run>cmd /c %PS_PATH% -Command " & {%PS_SYNTAX%}"
Instead I need to save the code to an .ps1 file and run it using this:
Code: Select all
Run>C:\Windows\SysNative\WindowsPowerShell\v1.0\powershell.exe -File "c:\path\to\run_as_64bit.ps1"
The downside is that I cannot use RP_CAPTURESTDOUT=1
EDIT:
Let>RP_WIN64PROCESS=1 Wasn't helpful in my specific case, but probably in most normal cases!
Last edited by
Grovkillen on Tue Aug 27, 2024 12:37 pm, edited 1 time in total.
-
Grovkillen
- Automation Wizard
- Posts: 1081
- Joined: Fri Aug 10, 2012 2:38 pm
- Location: Bräcke, Sweden
-
Contact:
Post
by Grovkillen » Tue Aug 27, 2024 12:28 pm
Just a though, I'd be very happy if MS could have a way of simply checking Environmental Variables using a:
Code: Select all
EnvVarRead>NAME_OF_VARIABLE,VALUE_OF_VARIABLE,RESULT
If no variable found the RESULT=1 else RESULT=0
And perhaps a write/append
Code: Select all
EnvVarWrite>NAME_OF_VARIABLE,VALUE_OF_VARIABLE,RESULT
EnvVarAppend>NAME_OF_VARIABLE,APPEND_VALUE_OF_VARIABLE,RESULT