Crash when using heredoc syntax in DMD v2.05[89] on Win7 [64bit]
application/octet-stream
563
Comments
Comment #0 by redger.liensun — 2012-04-15T10:36:48Z
Created attachment 1089
Crash when using heredoc syntax in DMD v2.05[89] on Win7 [64bit]
A sample program is attached : I tried to call the powershell, passing a script
to get a value. When using a string it works, when using the heredoc syntax to
create the string it compiles but then it fails at runtime.
PS C:\misc> .\crash.exe
std.file.FileException@std\file.d(294):
44b7b89aba64d47f8cdf665a20c8b22fe0947a3c0664e7c8dbe730911161fef: The system
cannot find the file specified.
----------------
413670
4134FB
406CA5
402056
4025E8
402622
402243
4342F5
----------------
Here is the code:
string sh = "powershell -Sta -NoProfile -NonInteractive -Command ";
//when uncommented the line below works! :)
//string script = "$date = get-date; $date.ToString('o');";
//using the heredoc syntax it fails :(
string script = q"SCR
$date = get-date;
$date.ToString('o');
SCR";
//escape script for powershell
string cmd = sh~'"'~script~'"';
writeln( "result: " ~ shell(cmd) );
Comment #1 by dejan.lekic — 2012-04-20T05:55:39Z
Can you do something like this on Windows 7:
C:\work> powershell -Sta -NoProfile -NonInteractive -Command "
$date = get-date;
$date.ToString('o');
" [ENTER]
Can you?
Comment #2 by dejan.lekic — 2012-04-20T05:58:27Z
(In reply to comment #1)
> Can you do something like this on Windows 7:
>
> C:\work> powershell -Sta -NoProfile -NonInteractive -Command "
> $date = get-date;
> $date.ToString('o');
> " [ENTER]
>
> Can you?
Actually, it is like this:
C:\work> powershell -Sta -NoProfile -NonInteractive -Command "$date = get-date;
$date.ToString('o');
" [ENTER]