[学习] LUA脚本学习1

发表于
  1. 获取WINDOWS文件的文件名/路径/扩展名
    例子:

     file="c:\\Windows\\notepad.txt"
     FileName = file:match("([^\\]+)$") -- notepad.txt
     FilePath = file:sub(1,-FileName:len()-1) -- c:\Windows\
     FileExt = FileName:match("%.[^%.]*$") -- .txt
    
  2. WINDOWS下环境变量扩展

    例子:

    path = "%WinDir%\\Notepad.exe"
    path = path:gsub("%%(%S+)%%",os.getenv) -- C:\Windows\notepad.exe
    
  3. 获取CMD命令输出结果

    例子:

    local f = io.popen('dir /b /s')
    print(f:read("*a") -- 读取所有内容
    

    其中read参数可以如下

    • *a 读取所有内容
    • *n 读取为数据(当输出为数字时用,否则会得到空值)
    • *l 读取一行 和 f:line() 一样(read不加参数时默认)
    • 数字 读取指定数量的字符. 比如输出 “123456” f:read(3) — “123”

    使用以下命令可以循环读取每一行.

     for line in f:lines() do
     print(line)
     end
    

    f:lines()也可以用f:read(“*l”)
    或用下面语句读取每4个字节

    for line in f:read(4) do
    print(line)
    end
    
  4. 字符串相关操作

    • 连接使用”..”
      a="abcd"
      b=3456
      print(a..b.."test")  ---- abcd3456test
      
    • string.len 计算字符串长度
      a = "test"
      a:len()   -- 4 或
      string.len(a) -- 4
      --也可以直接用 `#`
      print(#a) --- 4
      
    • string.sub 字符串提取
      a="123456"
      a:sub(1,3)  或 string.sub(a,1,3)  下同 --- 123
      a:sub(-1) -- 6
      a:sub(1,-3) -- 1234
      
    • 相关资料参考: http://www.lua.org/manual/5.1/manual.html

代码在线调试器: http://www.lua.org/cgi-bin/demo

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
若无特别注明,本站内容均属原创,转载请注明作者(chenall)和出处 chenall's Blog ,请勿用于任何商业用途