IO.open表示无法识别命令

时间:2015-08-08 09:54:32

标签: ruby windows

ruby​​版本是

c:\temp> C:\opt\sensu\embedded\bin\ruby --version
ruby 2.0.0p645 (2015-04-13) [i386-mingw32]

我有这个红宝石脚本

cmd = "c:\\windows\\system32\\pslist.exe | findstr notepad"
output = IO.popen(cmd).readline
...

它会抛出以下错误

'c:\windows\system32\pslist.exe' is not recognized as an internal or external command,
operable program or batch file.

但是,如果我在命令提示符下运行pslistc:\windows\system32\pslist.exe,它将运行OK并按预期生成结果。

为什么它在红宝石中不起作用?

修改

显然,如果我打电话给“tasklist”,它就可以了。但替代命令“pslist”只是失败了。

1 个答案:

答案 0 :(得分:0)

我很确定这是64-bit (WOW64) redirection问题。

尝试类似

的内容
cmd = "#{File.join(ENV['windir'], 'sysnative', 'pslist.exe'} |  findstr notepad"

看看是否有效。