在cmd.exe中运行脚本工作正常,但是当我在第三方shell或IDE中运行它时它不起作用

时间:2016-08-23 10:55:42

标签: windows shell cmd

Windows 7 64位。

运行bog-standard windows命令shell(在我的系统上,它位于此处:c:\windows\system32\cmd.exe)我可以使用简单的lua脚本,下面是输出:

D:\user\workspace\_lua>lua yamltest.lua
Lua Version: 5.1
doc_path = d:\user
Found file: .
Found file: ..
Found file: downloads
Found file: install
Found file: My Network Area.lnk
Found file: mybin
Found file: personal
Found file: sandbox
Found file: starter_stuff
Found file: tasks.csv
Found file: workspace
loading yaml...
yaml loaded: mytest.yaml
end
................

但是,当我使用不同的命令shell运行它时,例如consoleZ(控制台2)或ConEmu,当我运行完全相同的命令时,我会收到错误。像这样:

D:\user\workspace\_lua>lua yamltest.lua
Lua Version: 5.1
doc_path = d:\user
Found file: .
Found file: ..
Found file: downloads
Found file: install
Found file: My Network Area.lnk
Found file: mybin
Found file: personal
Found file: sandbox
Found file: starter_stuff
Found file: tasks.csv
Found file: workspace
d:\user\install\lua\luarocks\lua.exe: error loading module 'yaml.core' from file 'D:\user\install\lua\luarocks\systree\lib\lua\5
        Invalid access to memory location.
stack traceback:
        [C]: ?
        [C]: in function 'require'
        ...all\lua\luarocks\systree\share\lua\5.1\yaml\init.lua:26: in main chunk
        [C]: in function 'require'
        yamltest.lua:13: in main chunk
        [C]: ?

这似乎是一个运行时问题 - 当我通过IDE运行命令时,我得到了相同的输出,但也有一个这样的窗口:

enter image description here

我已经尝试了一大堆东西来找出差异可能是什么......

  • 64位vs 32位:不,我运行cmd-64和cmd-32都可以正常工作。我还安装了64/32位版本的shell并尝试了两种版本,都失败了。
  • 调用不同的cmd.exe?:不,我将ConEmu配置为显式运行C:\windows\system32\cmd.exe,仍然失败。
  • 环境变量:不,我打印了ConEmu和cmd.exe的变量。 ConEmu有一堆ConEmu变量和ConEmu安装的额外路径......但是这些都没有(据我所知)可以影响应用程序的运行。
  • 以管理员身份运行:不,我以管理员/普通用户的身份运行所有变种 - 仍然,每个cmd.exe实例都有效,每个shell都会失败。
  • 通过cmd.exe / c发出管道问题?:不,我在一个bat文件中尝试了这个并从windows运行栏运行....工作正常。

这里有什么问题? - 我真的看不出可能有什么区别? - 但这两种方法之间显然存在一些差异......

0 个答案:

没有答案