Lua OS库整理
os.clock()
返回一个程序使用CPU时间的一个近似值
local x = os.clock();
print("---begin----",os.clock())
local s = 0;
for i = 1, 100000000 do
s = s + i;
end
print("---end----",os.clock())
print(string.format("程序用时 : %.2f\n", os.clock() - x));
os.date()
返回一个按format格式化日期、时间的字串或表
原型:os.date ([format [, time]])
若有第二个参数,用第二个参数的时间来算,如果format以“!”开头,则按格林尼治时间进行格式化,返回一个表
参数 | 表示 | 示例 |
---|---|---|
%a | 一星期中天数的简写 | Wed |
%A | 一星期中天数的全称 | Wednesday |
%b | 月份的简写 | Sep |
%B | 月份的全称 | September |
%c | 日期和时间 | 09/16/98 23:48:10 |
%d | 一个月中的第几天 | 16 [0 ~ 31] |
%H | 24小时制中的小时数 | 23[00 ~ 23] |
%I | 12小时制中的小时数 | 11[01 ~ 12] |
%j | 分钟数 | 48[00 ~ 59] |
%M | 月份数 | 09[01 ~ 12] |
%m | “上午(am)” 或 “下午(pm)” | pm |
%P | 秒数 | 10[00 ~ 59] |
%S | 一星期中的第几天 | 3[0 ~ 6 = 星期天 ~ 星期六] |
%w | 一年中的第几个星期 | 0 ~ 52 |
%W | 日期 | 09/16/98 |
%x | 时间 | 23:48:10 |
%y | 两位数的年份 | 90[00 ~ 99] |
%Y | 完整的年份 | 2009 |
print("---begin----",os.date())
print("---24小时制中的小时数----",os.date("%H"))
print("---月份数----",os.date("%m"))
print("---一年中的第几天----",os.date("%j"))
print("---完整的年份----",os.date("%Y"))
os.time()
- 原型:os.time ([table])
- 解释:按table的内容返回一个时间值(数字),若不带参数则么使用当前时间作为table内容,
- 其中table中可以包含的字段有:year(必填), month(必填), day(必填), hour, min, sec, isdst,其他字段将会被忽略。
- 返回从1970年1月1日到指定时间的秒数
print("现在的时间 = "..os.time())
print("到北京奥运会的时间1 = "..os.time({year=2008,month=8,day=8,hour=20,min=0,sec=0}))
print("到北京奥运会的时间2 = "..os.time({year=2008,month=8,day=8})) -- 不填默认为0
print("到起始的时间 = "..os.time({year=1970,month=1,day=1,hour=8,min=0,sec=0})) -- 因为时区
os.difftime()
- 计算一个时间到另一个时间之差。
- 原型:os.difftime (t2, t1)
-- 奥运会的时间
local tab = {year=2008, month=8, day=8, hour=20}
local pretime = os.time(tab)
print(os.date("08 Olympic Games time is %x", pretime))
-- 现在的时间
local timetable = os.date("*t");
local nowtime = os.time(timetable)
print(os.date("now time is %c", nowtime))
local difft = os.difftime(nowtime, pretime);
print("from 08 Olympic Games to now cost time "..difft.."s");
os.execute()
- 执行system指令
- 原型:os.exit(code)
- 参数:表示待执行命令的字符串
该函数会返回3个返回值:
返回值1:是一个布尔类型。返回true时表示程序运行成功
返回值2:是一个字符串。当为"exit"时表示程序正常运行结束,当为"signal"时表示因信号而中断
返回值3:是返回状态(若该程序正常终结)或者终结该程序的信号代码
os.execute("color 02"); --改变颜色
-- os.execute("copy " .."Os.lua".. ",".."Os.lua.bak") --复制文件
os.execute("HELP"); -- 查看sys
os.exit()
原型:os.exit(code)
解释:相当于C的exit函数,终止主程序,code为返回值
os.getenv()
查询系统信息的函数
原型:os.getenv (varname)
解释:返回当前进程的环境变量varname的值,若变量没有定义时返回nil
print("start test getenv() function:\n")
print(os.getenv("SystemRoot")) -- 系统根目录
print(os.getenv("WoXiaXieDe")) -- 我乱写的
print(os.getenv("ALLUSERSPROFILE")) -- 所有“用户配置文件”的位置
print(os.getenv("alluserSpRoFilE")) -- 所有“用户配置文件”的位置
print(os.getenv("COMPUTERNAME")) -- 计算机的名称
print("\n")
print(os.getenv("COMSPEC")) -- 命令行解释器可执行程序的准确路径
print(os.getenv("HOMEDRIVE")) -- 连接到用户主目录的本地工作站驱动器号
print(os.getenv("HOMEPATH")) -- 用户主目录的完整路径
print(os.getenv("NUMBER_OF_PROCESSORS"))-- 安装在计算机上的处理器的数目
print(os.getenv("OS")) -- 操作系统的名称
print("\n")
print(os.getenv("PROCESSOR_LEVEL")) -- 计算机上安装的处理器的型号
print(os.getenv("PATHEXT")) -- 连接到用户主目录的本地工作站驱动器号
print(os.getenv("PROCESSOR_REVISION")) -- 处理器修订号的系统变量
print(os.getenv("TEMP")) -- 临时目录
print(os.getenv("SYSTEMDRIVE")) -- 系统根目录的驱动器
os.remove()
删除文件or空目录
原型:os.remove (filename)
解释:删除文件或一个空目录,若函数调用失败则返加nil加上错误信息。
返回: 1:true/nil 2:如果错误,错误信息
os.rename()
重命名文件or目录
附加:io.popen()函数
io.popen()函数也可以运行一条系统命令
详情请参阅:https://blog.csdn.net/qq_41453285/article/details/108089092
函数os.execute()和io.popen()非常依赖于操作系统,因为不同操作系统的命令不同
如果想要使用操作系统的其它扩展功能,最好的选择是使用第三方库,比如用于基本目录操作和文件属性操作的LuaFileSystem,或者提供了POSIX.1标准支持的luaposix库