[Jprogramming] pwd? tasks.ijs?
Bill Harris
bill_harris at facilitatedsystems.com
Fri Mar 2 07:20:28 HKT 2007
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Dan Bron <jf at dbron.net> writes:
> This:
>
>>,----[ .ijx snippet ]
>>| shell './executbl.flename datafle.flname.in'
>>| '.' is not recognized as an internal or external command,
>>| operable program or batch file.
>>`----
>
> is due to the fact that shell (from tasks) is defined to use cmd.exe,
> not cygwin. Even if you launched J from a cygwin shell, the shell
> verb is still going to invoke cmd.exe.
Thanks; that fixes one misperception I had. Indeed, I can't execute
that command from a Windows Command Prompt, either; I get the same error
message.
> Try using the verb bash I provided. Or maybe switch your slashes to
> backslashes.
Backslashes didn't make a difference; cmd couldn't deal with the ".",
nor could it find the cygwin dll.
I'm struggling with your bash verb right now:
,----[ I did change task.ijs ]
| load'task'
| CreateProcessF_jtask_
| 'kernel32 CreateProcessA i i *c i i i i i *c *c *c'&cd
| CreateProcess_jtask_
| 3 : 0
|
| NB. stuff elided
|
| pi=. szero PROCESSINFO
| NB. 'r i1 c i2 i3 i4 f i5 i6 si pi'=. CreateProcessF 0;y;0;0;inh; f;0;0;si;pi
| if. 0 = L.y do. cwd=.<0 else. 'y cwd'=.y end.
| 'r i1 c i2 i3 i4 f i5 i6 si
| if. 0=r do. 0 return. end.
|
| NB. more stuff elided
|
| )
`----
I defined bash:
,----
| bash =: verb define
| y spawn~ 'C:\cygwin\bin\bash.exe --login';'C:\cygwin\bin\'
| )
`----
but it doesn't work, at least the way I'm guessing it should:
,----
| bash 'ls'
| |domain error: cd
| | 'r i1 str i2 len i3'=. WriteFile y;x;(#x);(sint 0);0
|
`----
That's apparently in WriteAll:
,----[ WriteAll body ]
| WriteAll=: 3 : 0
| :
| while. #x do.
| 'r i1 str i2 len i3'=. WriteFile y;x;(#x);(sint 0);0
| len=. int len
| if. (0=r)+.0=len do.
| 'ec es'=: cderx''
| if. -.ec e.0 109 do. ret=. _1 end.
| break.
| end.
| x=. len}.x
| end.
| 1
| )
`----
,----[ A bit of debug ]
| load'debug'
| dbr 1
| bash 'dir'
| |domain error: cd
| |cd[:0]
| cd
| 15!:0
| y
| 512
| x
| +---------------------------------------------+
| ¦C:\cygwin\bin\bash.exe --login¦C:\cygwin\bin\¦
| +---------------------------------------------+
| #x
| 2
| sint
| 2&ic
| sint 0
|
| ic
| 3!:4
| WriteFile y;x;(#x);(sint 0);0
| |domain error: cd
| |cd[:0]
|
`----
Some things do work:
,----
| '+/i.3 4' spawn'jconsole'
| 12 15 18 21
| fork 'notepad.exe'
| shell'echo.|time'
| The current time is: 15:04:54.27
| Enter the new time:
| (shell 'dir /b') shell 'find "*.ijs"'
| breaker.ijs
| profile.ijs
`----
Any clues? I'll work through other suggestions people have sent in, but
the bash verb seemed to be the most promising.
Thanks,
Bill
- --
Bill Harris http://facilitatedsystems.com/weblog/
Facilitated Systems Everett, WA 98208 USA
http://facilitatedsystems.com/ phone: +1 425 337-5541
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (MingW32)
Comment: For more information, see http://www.gnupg.org
iD8DBQFF51/A3J3HaQTDvd8RAvt9AJ900PWla+2UxceiCvg9CsuqH+A6QgCggSAH
5MnES9C+qtimtrwENk7LYKo=
=1oSQ
-----END PGP SIGNATURE-----
More information about the Programming
mailing list