www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - CMD && comand not work

reply Marcone <marcone email.com> writes:
In this very generic example && not work to finalize the instruct 
and start a new instruct. Yes, I know dmd can build and run 
without it, but this is only a example.

execute(["cmd", "/c", "dmd test.d", "&&", "start test.exe"]);

How can I substitute && ?
Dec 10 2020
next sibling parent Paul Backus <snarwin gmail.com> writes:
On Thursday, 10 December 2020 at 21:01:30 UTC, Marcone wrote:
 In this very generic example && not work to finalize the 
 instruct and start a new instruct. Yes, I know dmd can build 
 and run without it, but this is only a example.

 execute(["cmd", "/c", "dmd test.d", "&&", "start test.exe"]);

 How can I substitute && ?
`&&` is a feature of the shell, so you need to use `executeShell`. Doc: http://phobos.dpldocs.info/std.process.executeShell.html
Dec 10 2020
prev sibling next sibling parent Jack <jckj33 gmail.com> writes:
On Thursday, 10 December 2020 at 21:01:30 UTC, Marcone wrote:
 In this very generic example && not work to finalize the 
 instruct and start a new instruct. Yes, I know dmd can build 
 and run without it, but this is only a example.

 execute(["cmd", "/c", "dmd test.d", "&&", "start test.exe"]);

 How can I substitute && ?
You can use executeShell() as mentioned already or do something like this: auto p = execute(["dmd", "test.d"]); if(p.status == 0) { execute(["test.exe"]); }
Dec 10 2020
prev sibling parent Kagamin <spam here.lot> writes:
On Thursday, 10 December 2020 at 21:01:30 UTC, Marcone wrote:
 In this very generic example && not work to finalize the 
 instruct and start a new instruct. Yes, I know dmd can build 
 and run without it, but this is only a example.

 execute(["cmd", "/c", "dmd test.d", "&&", "start test.exe"]);

 How can I substitute && ?
Try other variants: execute(["cmd", "/c", "dmd test.d && start test.exe"]); execute(["cmd", "/c", "dmd", "test.d", "&&", "start", "test.exe"]);
Dec 11 2020