Ik heb een applicatie waar ik een script aan kan meegeven als argument. Dit script wordt dan geopend en vervolgens uitgevoerd.
Ik gebruik dit vrnl. om periodieke tests uit te voeren. Ik heb een folder met een heleboel scripts die ik dan in 1 keer wil testen. Er kan maar 1 script per keer worden mee gegeven.
Ik heb hiervoor een batch bestandje gemaakt:
Dit werkt prima. Omdat ik de scripts ook interactief gebruik, maak ik een system variabele aan het begin van mijn script met SetEnv.exe en verwijder die weer aan het einde.
In mijn scripts roep ik in de main de volgende functie aan:
Uiteraard wordt calledAsBatch aan het begin op false gezet.
Als calledAsBatch true is, sluit ik de applicatie met:
Als ik mijn batch start en ik kijk in een ander cmd window naar de env. vars. met het commando set, dan zie ik dat BATCHTEST is gezet. Maar mijn CheckEnv functie ziet het niet.
Als ik vervolgens de batch afbreek en opnieuw start dan wel.
Het lijkt er dus op dat die env. vars niet worden ververst of zo.
Iemand een suggestie?
Ik gebruik dit vrnl. om periodieke tests uit te voeren. Ik heb een folder met een heleboel scripts die ik dan in 1 keer wil testen. Er kan maar 1 script per keer worden mee gegeven.
Ik heb hiervoor een batch bestandje gemaakt:
code:
1
2
3
4
5
6
7
| call setenv -a BATCHTEST 0 rem run all C# scripts: for %%a in (*.cs) do ( echo running %%a call %_mw% %cd%\%%a ) setenv -d BATCHTEST |
Dit werkt prima. Omdat ik de scripts ook interactief gebruik, maak ik een system variabele aan het begin van mijn script met SetEnv.exe en verwijder die weer aan het einde.
In mijn scripts roep ik in de main de volgende functie aan:
C#:
1
2
3
4
5
6
7
8
9
| private static void CheckEnv() { // Check if the environment variable is set: string tmp = System.Environment.GetEnvironmentVariable("BATCHTEST"); if (tmp == "0") { calledAsBatch = true; } } |
Uiteraard wordt calledAsBatch aan het begin op false gezet.
Als calledAsBatch true is, sluit ik de applicatie met:
C#:
1
2
| if (calledAsBatch) Application.ExitThread(); |
Als ik mijn batch start en ik kijk in een ander cmd window naar de env. vars. met het commando set, dan zie ik dat BATCHTEST is gezet. Maar mijn CheckEnv functie ziet het niet.
Als ik vervolgens de batch afbreek en opnieuw start dan wel.
Het lijkt er dus op dat die env. vars niet worden ververst of zo.
Iemand een suggestie?