<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Get Codesys profile via batch</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/</id><updated>2020-02-27T14:59:15.367000Z</updated><subtitle>Recent posts to Get Codesys profile via batch</subtitle><entry><title>Get Codesys profile via batch</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/?limit=25#1bb1" rel="alternate"/><published>2020-02-27T14:59:15.367000Z</published><updated>2020-02-27T14:59:15.367000Z</updated><author><name>P-Groebner</name><uri>https://forge.codesys.com/u/p-groebner/</uri></author><id>https://forge.codesys.com63068e74ea0d6ce7392eb888881a45ef6c4375b5</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi M.Keller and thank you for your answer.&lt;/p&gt;
&lt;p&gt;okay I may not have expressed myself very well, sorry. I need to read the profile before I start CoDeSys and execute my python script. I need to read it in my batch file (outside of the CoDeSys IDE), where I start CoDeSys, so that I can do something like:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="ss"&gt;""&lt;/span&gt; &lt;span class="n"&gt;CoDeSys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt; &lt;span class="c1"&gt;--profile=%CODESYS_PROFILE% --enablescripttracing --runscript=%PYTHON_PATH%&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;What I did now is to scan the Profiles folder (Default path: C:\Program Files (x86)\3S CODESYS\CODESYS\Profiles) and list all file names with a *profile extension. Afterwards I can choose the profile I want and store it in a variable. The batch script code looks like follows(you should be able to execute it, if CoDeSys is installed in the specified directory):&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;@&lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;off&lt;/span&gt;
&lt;span class="nv"&gt;cd&lt;/span&gt; &lt;span class="nv"&gt;C&lt;/span&gt;:\&lt;span class="nv"&gt;Program&lt;/span&gt; &lt;span class="nv"&gt;Files&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;x86&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;\&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="nv"&gt;S&lt;/span&gt; &lt;span class="nv"&gt;CODESYS&lt;/span&gt;\&lt;span class="nv"&gt;CODESYS&lt;/span&gt;\&lt;span class="nv"&gt;Profiles&lt;/span&gt;
&lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;List&lt;/span&gt; &lt;span class="nv"&gt;all&lt;/span&gt; &lt;span class="nv"&gt;installed&lt;/span&gt; &lt;span class="nv"&gt;CoDeSys&lt;/span&gt; &lt;span class="nv"&gt;profiles&lt;/span&gt;:
&lt;span class="nv"&gt;setlocal&lt;/span&gt; &lt;span class="nv"&gt;enableextensions&lt;/span&gt; &lt;span class="nv"&gt;enabledelayedexpansion&lt;/span&gt;
&lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;%%&lt;/span&gt;&lt;span class="nv"&gt;f&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;.&lt;span class="nv"&gt;profile&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;  &lt;span class="ss"&gt;(&lt;/span&gt;
   &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
   &lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;: &lt;span class="o"&gt;%%~&lt;/span&gt;&lt;span class="nv"&gt;nf&lt;/span&gt;
&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;endlocal&lt;/span&gt;
&lt;span class="nv"&gt;rem&lt;/span&gt; &lt;span class="nv"&gt;Choose&lt;/span&gt; &lt;span class="nv"&gt;profile&lt;/span&gt;
&lt;span class="nv"&gt;echo&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;
&lt;span class="nv"&gt;SET&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;p&lt;/span&gt; &lt;span class="nv"&gt;PROFILE_NUMB&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;Choose&lt;/span&gt; &lt;span class="nv"&gt;the&lt;/span&gt; &lt;span class="nv"&gt;profile&lt;/span&gt; &lt;span class="nv"&gt;you&lt;/span&gt; &lt;span class="nv"&gt;want&lt;/span&gt; &lt;span class="nv"&gt;to&lt;/span&gt; &lt;span class="nv"&gt;use&lt;/span&gt; &lt;span class="nv"&gt;by&lt;/span&gt; &lt;span class="nv"&gt;entering&lt;/span&gt; &lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;number&lt;/span&gt;: 
&lt;span class="nv"&gt;rem&lt;/span&gt; &lt;span class="nv"&gt;Get&lt;/span&gt; &lt;span class="nv"&gt;profile&lt;/span&gt;
&lt;span class="nv"&gt;setlocal&lt;/span&gt; &lt;span class="nv"&gt;enableextensions&lt;/span&gt; &lt;span class="nv"&gt;enabledelayedexpansion&lt;/span&gt;
&lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;%%&lt;/span&gt;&lt;span class="nv"&gt;f&lt;/span&gt; &lt;span class="nv"&gt;in&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;.&lt;span class="nv"&gt;profile&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;  &lt;span class="ss"&gt;(&lt;/span&gt;
   &lt;span class="nv"&gt;set&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nv"&gt;a&lt;/span&gt; &lt;span class="nv"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nv"&gt;count&lt;/span&gt;&lt;span class="o"&gt;!==%&lt;/span&gt;&lt;span class="nv"&gt;PROFILE_NUMB&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;
      &lt;span class="nv"&gt;SET&lt;/span&gt; &lt;span class="nv"&gt;CODESYSPROFILE&lt;/span&gt;&lt;span class="o"&gt;=%%~&lt;/span&gt;&lt;span class="nv"&gt;nf&lt;/span&gt;
      &lt;span class="k"&gt;goto&lt;/span&gt; &lt;span class="nl"&gt;commonExit&lt;/span&gt;
   &lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="ss"&gt;)&lt;/span&gt;
&lt;span class="nv"&gt;endlocal&lt;/span&gt;
&lt;span class="nl"&gt;:commonExit&lt;/span&gt;
&lt;span class="nv"&gt;echo&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="nv"&gt;CODESYSPROFILE&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;
&lt;span class="k"&gt;pause&lt;/span&gt;
&lt;span class="k"&gt;exit&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Can you give me a short feedback on this solution? I guess it is not guaranteed, that it will work in the future. Iam also grateful for further suggestions on how to solve this.&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Get Codesys profile via batch</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/?limit=25#5e5f" rel="alternate"/><published>2020-02-27T14:59:14.744000Z</published><updated>2020-02-27T14:59:14.744000Z</updated><author><name>mkeller</name><uri>https://forge.codesys.com/u/mkeller/</uri></author><id>https://forge.codesys.com8fd4cc4f341999c3741acd333964e337eb2608c7</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hi P_Groebner.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;P_Groebner hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
So is there a way to read the installed CoDeSys profile from the used computer in a batch script?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can find the profile name inside the content of .&lt;/p&gt;
&lt;p&gt;Here some example code:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;__future__&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;print_function&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"--- sys.version"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;version&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Output from CODESYS V3.5 SP11:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="gd"&gt;--- sys.version&lt;/span&gt;
2.7.7 (CODESYS.exe CODESYS V3.5 SP11, ScriptEngine.plugin 3.5.11.0)
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;I think the best way to get the profile name is to match the executable name, which you can get from , and the plug-in name 'ScriptEngine.plugin' with the leading comma and extract what is between them.&lt;/p&gt;
&lt;p&gt;BR&lt;br/&gt;
Martin&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Get Codesys profile via batch</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/8a80f2d636/?limit=25#0962" rel="alternate"/><published>2020-02-27T14:59:13.044000Z</published><updated>2020-02-27T14:59:13.044000Z</updated><author><name>P-Groebner</name><uri>https://forge.codesys.com/u/p-groebner/</uri></author><id>https://forge.codesys.com832feffbca5b029b3f72b5a298c9d6fb807c45f9</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am trying to start CoDeSys with a batch file like this and execute a python script afterwards:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="k"&gt;start&lt;/span&gt; &lt;span class="ss"&gt;""&lt;/span&gt; &lt;span class="n"&gt;CoDeSys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;exe&lt;/span&gt; &lt;span class="c1"&gt;--profile="CODESYS V3.5 SP10 Patch 4" --enablescripttracing --runscript=%PYTHON_PATH% --scriptargs=%XML_PATH%&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;This works well so far but I need to pass the &lt;strong&gt;--profile&lt;/strong&gt; argument more generic. So is there a way to read the installed CoDeSys profile from the used computer in a batch script?&lt;br/&gt;
If not...is it possible to do some hack? I saw a folder called "Profiles" in the Codesys installation folder. Maybe I could scan the file names there to get the latest installed profile.&lt;/p&gt;
&lt;p&gt;Greetings&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>