it is time to change syntax to
{.exec|
cmd="cmd.exe"|
pars="/c dir{:|:}grep w"|out=#x|timeout=xx.}{.^#x.}
Here is a compromise with macrodequote and the necessity of dequote
procedure exec_();
var
s: string;
begin
s:=dequote(macroDequote(par(1,'pars')));
if fileOrDirExists(s) then
s:=quoteIfAnyChar(' ', s)
else
if unnamedPars < 2 then
s:='';
if parExist(['out']) or parExist(['timeout']) then
try
spaceIf(captureExec(dequote(macroDequote(par(0,'cmd')))+nonEmptyConcat(' ', s), s, parI('timeout',2)));
setVar(parEx('out'), s);
except end
else
spaceIf(exec(dequote(macroDequote(par(0,'cmd'))), s))
end; // exec_
then it is possible to use
{.exec|
cmd={:"cmd.exe":} | pars={:"/c dir|grep w":} |out=#x|timeout=xx.}{.^#x.}
or
{.exe
c|
cmd=cmd.exe | pars=/c dir{:|:}gr
ep w[/color] |out=#x|timeout=xx.}{.^#x.}
And still
{.exec|cmd.exe|
{:/c dir|grep w:} |out=#x|timeout=xx.}{.^#x.}
a new build 243 and then silentpliz will be happy to translate