【发布时间】:2019-04-07 10:46:27
【问题描述】:
以下程序将文本文件从 windows 格式转换为 POSIX 格式(这意味着它将一系列回车换行符转换为换行符)
local inp = assert(io.open(arg[1], "rb"))
local out = assert(io.open(arg[2], "wb"))
local data = inp:read("a")
data = string.gsub(data, "\r\n", "\n")
out:write(data)
assert(out:close())
这是我要转换的示例
print("Hello World!")
print("\r\n")
我们可以使用格式 lua [options] [script[args]] 从 shell 调用脚本。所以,我输入 prog.lua,它是 lua 文件,我想要转换的示例文件名为 example.lua,以便它存储在 arg[1] 和 arg[2] 中:
>prog.lua exampe.lua example.lua
之后我收到此错误:
C:\Program Files\Lua\5.3\prog.lua:1: bad argument #1 to 'open' (string
expected, got nil)
stack traceback:
[C]: in function 'io.open'
C:\Program Files\Lua\5.3\prog.lua:1: in main chunk
[C]: in ?
我认为这是在第一行的 io.open(arg[1], "rb") 中推断函数调用的第一个参数。但是,我不明白为什么它会出错,因为示例文件应该存储在 arg[1] 和 arg[2] 中,但转换器仍然会出错。 有什么解决方案可以解决这个问题吗?
提前致谢。
【问题讨论】:
标签: windows command-line lua arguments