范例
当前位置:首页 > 其他范文 > 范例 > 列表页

lua,copy,范例

小草范文网  发布于:2017-04-11  分类: 范例 手机版

篇一:Lua os.execute()

Lua os.execute()

前言

今天来看一个短小精悍而又强大的lua函数,这个函数虽然只有短短的几个字母,却涉及到了许多系统级的函数调用,使用方法也相当简单,接下来我们来看看例子。

内容

os.execute

原型:os.execute ([command])

解释:这个函数相当于C语言中的system(),我们可以看到这个函数有一个缺省的参数command,这个函数就是解析command再来通过的系统来调用解析的结果,它会返回一个依赖于操作系统的状态码。当参数缺省时,如果操作系统可以调用解析参数则返回非0的数,否则返回0。

Uasge

我们来新建一个文件命名为executetest.lua然后编写如下代码: local ret = os.execute();

if ret ~= 0 then

print("the system shell is available, ret = "..ret.."\n\n")else

print("the system shell is not available, ret = "..ret.."\n\n")end

os.execute("color 02");

print("this is a test for os.execute\n");

local copyret = os.execute("copy " .."luatest.lua"..

",".."luatest.lua.bak")

print("copyret = "..copyret)

os.execute("pause");

运行结果

execute.png

execute2.png

总结

由示例可知,os.execute()使用真的非常方便,例如下面的两者是等价的Lua:os.execute ("pause") <==>c语言:system("pause")。

我们也可以使用os.execute("color 02");来将命令提示行的颜色由原来的白色改为绿色,注意这里改变的是所有的显示结果,而不是执行命令行之后的结果。

篇二:SetupFactory部分功能代码解析

Application.Exit退出安装程序,并返回一个可选的返回代码。

Application.GetInstallLanguage返回一个包含当前安装语言的表格。

Application.GetLastError返回最后的错误代码。

Application.GetWndHandle为安装程序窗口返回数字窗口句柄。

Application.LoadActionPlugin加载一个操作插件文件 (.lmd)。

Application.LoadScript加载并执行一个外部脚本文件 (.lua)。

Application.LoadValue加载保存 Application.SaveValue 操作的值。

Application.Minimize最小化安装程序窗口到任务栏。

Application.Restore恢复安装程序窗口。

Application.RunScriptFile执行外部脚本文件 (.lua) 的内容。

Application.SaveValue保存值到用户的系统,以便今后可用 Application.LoadValue 操作获取。Application.SetInstallLanguage设置指定的语言为安装语言。

Application.SetLastError更改最后的错误代码。

Application.Sleep让安装程序休眠一段时间。

Debug.Clear清除调试窗口的内容。

Debug.GetEventContext返回描述当前事件上下文的字符串,如:"欢迎 > 继续时"。Debug.GetTraceMode返回当前调试跟踪模式。

Debug.Print追加文本到调试窗口的底部。

Debug.SetTraceMode打开或关闭调试跟踪模式

Debug.ShowWindow显示或隐藏调试窗口。

Dialog.FileBrowse显示一个文件浏览对话框,以便用户选择一个或多个文件的路径。Dialog.FolderBrowse显示文件夹浏览对话框,以便用户选择文件夹的路径。

Dialog.Input显示输入对话框,以便获取用户信息。

Dialog.MaskedInput显示输入对话框,以便按指定格式获取用户信息。

Dialog.Message显示带有消息信息的对话框。

Dialog.PasswordInput显示“隐藏输入”对话框,以便获取用户输入的密码。

Dialog.TimedMessage显示带有消息信息的定时对话框。

Dialog.SplashImage显示包含图像的闪屏对话框。

DlgButton.GetProperties获取当前屏幕上按钮控件的属性。

DlgButton.SetProperties设置当前屏幕上按钮控件的属性。

DlgCheckBox.GetProperties获取当前屏幕上检查框的属性。

DlgCheckBox.SetProperties设置当前屏幕上检查框控件的属性

DlgComboBox.AddItem将项目添加到已排序的组合框控件。如果控件未排序,项目将被添加到末尾。

DlgComboBox.GetItemData获取当前屏幕上组合框控件中项目的关联数据字符串。

DlgComboBox.GetItemText返回当前屏幕上组合框控件中项目的文本。

DlgComboBox.GetProperties获取当前屏幕上组合框控件的属性。

DlgComboBox.InsertItem插入项目到组合框控件。

DlgComboBox.RemoveItem从组合框控件中移除项目。

DlgComboBox.SetItemData将组合框控件的项目设置为字符串,以便今后能被检索。DlgComboBox.SetProperties设置当前屏幕上组合框控件的属性。

DlgEditField.GetProperties

获取当前屏幕上编辑栏控件的属性。

DlgEditField.SetProperties设置当前屏幕上编辑栏控件的属性。DlgListBox.AddItem

添加项目到列表框控件。如果列表框已排序,项目被添加到已排序的位置,否则被添加到末尾。注意:此操作仅在从屏幕事件调用和指定的控件在当前屏幕上的时候工作。DlgListBox.DeleteItem从列表框控件中删除项目。

DlgListBox.FindItem基于搜索字符串在列表框中查找项目,并返回其索引

DlgListBox.GetCount返回列表框控件中的项目数量。

DlgListBox.GetItemProperties获取已给出其索引的列表框控件中项目的属性。

DlgListBox.GetProperties获取当前屏幕上列表框控件的属性。

DlgListBox.GetSelected返回指定列表框控件中所有已选项的索引 (行号) 的数字索引表。 DlgListBox.GetSelectedCount返回列表框控件中已选项的数量。

DlgListBox.InsertItem将项目插入到列表框控件中的指定位置。

DlgListBox.SetItemProperties设置已给出其索引的列表框控件中项目的属性。

DlgListBox.SetProperties设置当前屏幕上列表框控件的属性。

DlgListBox.SetUpdate设置列表框控件的更新状态。

DlgProgressBar.GetPos返回进度条控件中进度表的当前位置。

DlgProgressBar.GetProperties返回包含当前屏幕上进度条控件属性的表格。

DlgProgressBar.GetRange返回包含当前屏幕上进度条控件范围的表格。

DlgProgressBar.SetPos设置当前屏幕上进度条控件中进度表的位置。

DlgProgressBar.SetProperties设置当前屏幕上进度条控件的属性。

DlgProgressBar.SetRange设置当前屏幕上进度条控件的范围。

DlgProgressBar.SetStep设置进度条控件的步长值,它将在 DlgProgressBar.Step 被调用时使用。 DlgProgressBar.Step通过在 DlgProgressBar.SetStep 操作中指定的步长数量来增加当前进度。 DlgRadioButton.GetProperties获取当前屏幕上单选按钮控件的属性。

DlgRadioButton.SetProperties设置当前屏幕上单选按钮控件的属性。

DlgScrollingText.AppendLine追加新行到滚动文本控件中的当前文本。

DlgScrollingText.SetProperties设置当前屏幕上滚动文本控件的属性。

DlgSelectPackages.GetCategoryProperties获取当前屏幕上选择程序包控件中程序包类别的属性。 DlgSelectPackages.SetCategoryProperties设置当前屏幕上选择程序包控件中程序包类别的属性。 DlgSelectPackages.UpdateDisplay基于当前内部数据来更新当前显示的程序包列表。

DlgStaticText.GetProperties获取当前屏幕上静态文本控件的属性。

DlgStaticText.SetProperties设置当前屏幕上静态文本控件的属性。

DLL.CallFunction调用动态链接库 (DLL) 中的函数。它可用于以你自己的函数来扩充 Setup Factory 的功能。

Drive.Eject当给出了有效的盘符时弹出 CD 或 DVD-ROM。

Drive.Enumerate返回包含用户系统上所有驱动器的数字索引表。

Drive.GetFreeSpace获取指定驱动器的剩余磁盘空间,并返回其大小 (MB)。

Drive.GetInformation返回有关指定驱动器的信息表。

Drive.GetSize获取指定硬盘的磁盘空间,并返回其大小 (MB)。

Drive.GetType获取指定驱动器的类型。

Drive.GetUsedSpace获取指定驱动器的已用磁盘空间,并返回其大小 (MB)。

File.Copy复制文件到其他位置。

File.Delete删除文件。

File.DeleteOnReboot下次系统重启时删除文件。

File.DoesExist如果文件存在于指定位置就返回 true,否则返回 false。

File.ExploreFolder浏览用户系统上的文件夹。

File.Find在本地系统上搜索文件。

File.GetAttributes给指定文件返回包含所有属性的表格。

File.GetCRC给指定文件返回 CRC 值。

File.GetDefaultViewer返回路径到与指定文件扩展名关联的默认阅读程序。

File.GetShortName获取文件的完整路径和文件名的“8.3”样式。

File.GetSize返回文件的大小 (字节)。

File.GetVersionInfo给指定文件返回包含所有版本信息的表格。

File.Install将文件安装到用户系统。

File.IsInUse确定指定文件是否正在使用。如果文件正在使用,就不能复制或删除。

File.Move移动文件到其他位置。

File.MoveOnReboot下次系统重启时将文件从一个位置移动到另一个位置。

File.Open用默认的阅读程序打开文档文件。

File.OpenEmail用目标栏中的 Email 地址打开用户的默认 Email 客户端。

File.OpenURL在用户的默认网络浏览器中打开本地文件或网络地址。

File.Print在用户的默认打印机上打印文档。

File.Rename重命名文件。

File.Run运行可执行文件。

File.RunOnReboot下次系统重启时运行执行程序。

File.SetAttributes设置文件的属性。

Folder.Create创建新文件夹。

Folder.Delete删除文件夹。

Folder.DeleteTree删除指定的文件夹及其子文件夹中的所有文件。

Folder.DoesExist如果指定文件夹存在就返回 true,否则返回 false。

Folder.Find搜索文件夹。

Folder.GetCurrent返回“当前文件夹”(工作目录)。

Folder.Rename重命名文件夹。

Folder.SetCurrent设置应用程序的“当前文件夹”(工作目录)。

HTTP.Download从网站上下载文件。

HTTP.DownloadSecure使用 HTTPS (安全超文本传输协议) 从网站下载文件。

HTTP.GetConnectionState检索用户的 Internet 连接状态。

HTTP.GetHTTPErrorInfo检索有关最后发生错误的 HTTP 指定信息。

HTTP.Submit提交数据到网站,并从服务器返回响应。

HTTP.SubmitSecure使用 HTTPS (安全超文本传输协议) 提交数据到网站,并从服务器返回响应。 HTTP.TestConnection检查用户的 Internet 连接。

INIFile.DeleteSection删除指定 INI 文件中的“区段”。

INIFile.DeleteValue删除指定 INI 文件中的“值”。

INIFile.GetSectionNames返回 INI 文件中的所有“区段”名称。

INIFile.GetValue返回指定 INI 文件中与“值”关联的数据。

INIFile.GetValueNames返回 INI 文件的区段中的所有“值”名称。

INIFile.SetValue设置值的数据。

Math.Abs返回数字的绝对值。

Math.Acos返回数字的反余弦 (弧度)。

Math.Asin返回数字的反正弦 (弧度)。

Math.Atan返回数字的反正切 (弧度)。

Math.Atan2返回 Num1/Num2 的反正切 (弧度)。

Math.Ceil返回数字的上限。

Math.Cos返回数字的余弦。

Math.Deg将数字从弧度转换为度数。

Math.Exp返回数字的指数值。

Math.Floor返回数字的下限。

Math.Frexp返回数字(x) 的尾数(m) 和指数(n) (方程式:x = m * 2^n) 的表格。

Math.Ldexp已知尾数(m) 和指数(n) (方程式:x = m * 2^n),返回数字(x)。

Math.Log返回数字的对数。

Math.Log10返回数字的基数为 10 的对数。

Math.Max比较两个数字,并返回最大数。

Math.Min比较两个数字,并返回最小数。

Math.Mod返回 Num1/Num2 的系数。

Math.Pow返回基数乘至指数幂的计算。

Math.Rad将数字从度数转换为弧度。

Math.Random生成随机数。

Math.RandomSeed播种用于 Math.Random 的随机数。

Math.Round按指定的小数位数返回“四舍五入”后的数字。

Math.Sin返回弧度值的正弦。

Math.Sqrt返回数字的平方根。

Math.Tan返回弧度值的正切。

Num弧度角度

ODBC.ConfigDataSource配置 ODBC 数据源。

ODBC.InstallDriver安装 ODBC 驱动程序。

ODBC.InstallManager安装驱动程序管理器。

ODBC.UninstallDriver移除 ODBC 驱动程序,并返回该操作之后驱动程序的使用统计。 ODBC.UninstallManager卸载驱动程序管理器,并返回该操作之后的使用统计。

Registry.CreateKey在用户的注册表中创建“键”。

Registry.DeleteKey从用户的注册表中删除“键”。

Registry.DeleteValue从用户的注册表中删除“值”。

Registry.DoesKeyExist确定是否存在指定的注册表键,并返回 true 或 false。

Registry.GetAccess检查注册表键是否有指定的访问权限,并返回 true 或 false。

Registry.GetKeyNames给指定的键返回包含所有子键名称的表格。

Registry.GetValue返回指定注册表值的数据。

Registry.GetValueName返回指定子键中所有的值名称。

Registry.GetValueType返回注册表值的类型。

Registry.SetValue设置指定注册表值的数据。

Screen.Back返回到一个已查看过的屏幕。此操作类似网络浏览器上的返回按钮。

Screen.End跳转到当前屏幕列表的末尾,并开始安装中的下一个阶段。

Screen.GetFocus获取当前控件的 ID。

Screen.GetLocalizedString获取当前语言中字符串 ID 的文本。

Screen.GetProperties获取当前屏幕的属性。

Screen.Jump跳转到指定屏幕。

Screen.Next依照屏幕管理器中的顺序进入屏幕列表中的下一个屏幕。

Screen.Previous依照屏幕管理器中的顺序进入屏幕列表中的上一个屏幕。

Screen.SetFocus给控件设置焦点。

Screen.SetLocalizedString设置当前语言中字符串 ID 的文本。

Screen.StartTimer启动计时器。

Screen.StopTimer停止计时器。

Service.Continue继续指定的服务。

Service.Create在本地系统中创建服务。

Service.Delete从服务数据库中删除指定的服务。

Service.Pause暂停指定的服务。

Service.Query查询指定服务的状态。

Service.Start启动服务。 Service.Stop停止服务。

SessionVar.Expand返回包含给定的会话变量的内容的字符串。

SessionVar.Get返回未展开的会话变量的内容。

SessionVar.Remove在运行时从会话变量管理器中移除给定的会话变量。

SessionVar.Set将给定的会话变量设置为指定的值。

SetupData.CalculateRequiredSpace计算安装所需的磁盘空间。

SetupData.GetAppShortcutFolderPath获取存放应用程序快捷方式的文件夹。

SetupData.GetFileListSetupData.GetLocalizedString获取全局字符串的定位文本 (基于当前安装语言)。

SetupData.GetPackageList返回包含在当前安装程序中的程序包 ID 的数字索引表。 SetupData.GetPackageProperties返回包含给定的程序包属性的表。

SetupData.GetSerialListNames返回包含所有序列号列表名称的数字索引表。

SetupData.IsValidSerialNumber检查给定的序列号在指定的序列号列表中是否有效。 SetupData.SetLocalizedString设置当前语言中字符串 ID 的文本。

SetupData.SetPackageProperties设置给定的程序包的属性。 SetupData.WriteToLogFile将文本的字符串写入安装或卸载日志文件。

Shell.CreateShortcut创建快捷方式。

Shell.DeleteShortcut移除快捷方式。

Shell.GetFolder返回公共文件夹的路径,如:"My Documents" 或用户的启动文件夹。 StatusDlg.GetMeterPos返回状态对话框的当前状态表位置。

StatusDlg.Hide隐藏内建的状态对话框。

StatusDlg.IsCancelled如果点击了内建状态对话框上的取消按钮就返回 true,否则返回 false。 StatusDlg.SetMessage设置内建状态对话框上的主要描述信息。

StatusDlg.SetMeterPos设置内建状态对话框上的状态表位置。

StatusDlg.SetMeterRange设置内建状态对话框的状态表的范围。

StatusDlg.SetStatusText设置内建状态对话框上的状态文本。这是显示在状态表上的文本。 StatusDlg.SetTitle设置内建状态对话框上的标题栏。

StatusDlg.SetCancelled设置内建状态对话框上取消按钮的已点击/未点击状态。

StatusDlg.Show显示内建状态对话框。

StatusDlg.ShowCancelButton显示或隐藏内建状态对话框上的取消按钮。

StatusDlg.ShowProgressMeter显示或隐藏内建状态对话框上的进度表。

String.AbbreviateFilePath返回简短的文件路径。

String.Asc返回字符的 ASCII 代码 (十进制)。

篇三:openwrt学习笔记

一、 基础

1. 安装编译环境

root@zjh-vm:/home/work/openwrt/barrier_breaker# apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc

2. 下载源码

在Openwrt的官方网站https://openwrt.org上可以看最新稳定版为BarrierBreaker 14.07,在自己的虚拟机Ubuntu系统中创建一个工作目录

root@zjh-vm:/home/work# mkdir openwrt

然后使用svn工具下载最新稳定版的源代码

root@zjh-vm:/home/work# cd openwrt

root@zjh-vm:/home/work/openwrt# svn co svn://svn.openwrt.org/openwrt/branches/barrier_breaker

下载完成后,进入barrier_breaker目录

root@zjh-vm:/home/work/openwrt# cd barrier_breaker/

执行svn info查看当前安装的修订版本

root@zjh-vm:/home/work/openwrt/barrier_breaker# svn info

Path: .

Working Copy Root Path: /home/work/openwrt/barrier_breaker

URL: svn://svn.openwrt.org/openwrt/branches/barrier_breaker

Relative URL: ^/branches/barrier_breaker

Repository Root: svn://svn.openwrt.org/openwrt

Repository UUID: 3c298f89-4303-0410-b956-a3cf2f4a3e73

Revision: 43660

Node Kind: directory

Schedule: normal

Last Changed Author: nbd

Last Changed Rev: 43618

Last Changed Date: 2014-12-11 22:39:40 +0800 (四, 11 12月 2014)

执行svn update更新源码

root@zjh-vm:/home/work/openwrt/barrier_breaker# svn update

Updating '.':

Restored '.gitignore'

U target/linux/generic/patches-3.10/645-bridge_multicast_to_unicast.patch

U target/linux/generic/patches-3.10/644-bridge_optimize_netfilter_hooks.patch

………………………………

U tools/firmware-utils/src/mktplinkfw.c

U toolchain/Makefile

Updated to revision 44071.

现在已经更新到44071版本了,现在再次执行svn info查看修订版本

root@zjh-vm:/home/work/openwrt/barrier_breaker# svn info

Path: .

Working Copy Root Path: /home/work/openwrt/barrier_breaker

URL: svn://svn.openwrt.org/openwrt/branches/barrier_breaker

Relative URL: ^/branches/barrier_breaker

Repository Root: svn://svn.openwrt.org/openwrt

Repository UUID: 3c298f89-4303-0410-b956-a3cf2f4a3e73

Revision: 44071

Node Kind: directory

Schedule: normal

Last Changed Author: nbd

Last Changed Rev: 44065

Last Changed Date: 2015-01-21 00:41:46 +0800 (三, 21 1月 2015)

更新Feeds

root@zjh-vm:/home/work/openwrt/barrier_breaker# ./scripts/feeds update -a

Updating feed 'packages' from 'https://github.com/openwrt/packages.git;for-14.07' ...

remote: Counting objects: 123, done.

remote: Compressing objects: 100% (76/76), done.

remote: Total 123 (delta 70), reused 92 (delta 39)

Receiving objects: 100% (123/123), 13.89 KiB | 0 bytes/s, done.

Resolving deltas: 100% (70/70), completed with 19 local objects.

From https://github.com/openwrt/packages

ad7c25a..71719eb for-14.07 -> origin/for-14.07

Updating ad7c25a..71719eb

使下载的软件包可以出现在make menuconfig配置菜单中

root@zjh-vm:/home/work/openwrt/barrier_breaker# ./scripts/feeds install <PACKAGENAME>

或者

root@zjh-vm:/home/work/openwrt/barrier_breaker# ./scripts/feeds install –a

注意:./scripts/feeds这个脚本只是使软件包可以出现在make menuconfig配置菜单中,而并不是真正的安装或者编译软件。

3. 配置

Openwrt默认不允许使用root用户操作,若要使用root用户操作可以修改include/prereq-build.mk这个文件 root@zjh-vm:/home/work/openwrt/barrier_breaker# vi include/prereq-build.mk

define Require/non-root

#[ "$$(shell whoami)" != "root" ]

endef

把红色那行注释掉即可使用root用户操作了。

执行make menuconfig打开配置菜单

root@zjh-vm:/home/work/openwrt/barrier_breaker# make menuconfig

每个选项前面都有一个[ ]标签,我们可以选择y,m和n

选择y设置为<*>,表示将软件包编译进固件image文件

选择m设置为<M>,表示软件包会被编译,但不会编译进固件image文件。Openwrt会把设置为M选项的软件包编译后再制作成一个以ipk为后缀(.ipk)的文件,然后在设备上通过opkg来安装到设备上。

选择n设置为<>,表示不编译该软件包。

配置主要包括4个部分

? Target system(目标系统)

? Package selection(软件包选择)

? Build system settings(编译系统设置)

? Kernel modules(内核模块配置)

我们这里先简单配置一下,具体的以后再讲。

首先配置目标系统,根据自己的设备选择SOC类型,我使用的设备使用是RT5350,是Ralink公司的SOC,8MB Flash,32MB SDRAM,从这个地址可得知openwrt支持的设备

因此Target System配置如下

Target Profile对应上面列表的mpr-a2

当配置完成并保存配置后,openwrt将根据你的配置创建一个配置文件.config

root@zjh-vm:/home/work/openwrt/barrier_breaker# vi .config

如果要配置busybox,可以进行如下操作

root@zjh-vm:/home/work/openwrt/barrier_breaker# make menuconfig

Base system --->

<*> busybox................................ Core utilities for embedded Linux --->

从busybox这个菜单按回车就可以进入busybox的配置界面了。

如果要配置内核选项可以执行make kernel_menuconfig

root@zjh-vm:/home/work/openwrt/barrier_breaker# make kernel_menuconfig

4. 编译

可以直接执行make进行编译

root@zjh-vm:/home/work/openwrt/barrier_breaker# make

添加make编译选项

root@zjh-vm:/home/work/openwrt/barrier_breaker# make -j 3 V=s

-j:多进程编译,这样编译快些。-j指定的参数一般为你的CPU核数+1,比如双核CPU就指定为3

V=s:输出编译的详细信息,这样编译出错时,我们才知道错在哪里

编译成功后,会在bin目录下生成固件文件

其中的openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin就是用来烧写到设备的固件。

5. 清理工程

root@zjh-vm:/home/work/openwrt/barrier_breaker# make clean

删除/home/work/openwrt/barrier_breaker/bin和/ home/work/openwrt/barrier_breaker/ build_dir这2个目录

root@zjh-vm:/home/work/openwrt/barrier_breaker# make dircl(转载自:www.xiaocaOfaNWen.com 小草 范 文 网:lua,copy,范例)ean

删除/home/work/openwrt/barrier_breaker/bin、/ home/work/openwrt/barrier_breaker/ build_dir、

/ home/work/openwrt/barrier_breaker/staging_dir、/ home/work/openwrt/barrier_breaker/staging_di r/toolchain和 / home/work/openwrt/barrier_breaker/staging_dir

root@zjh-vm:/home/work/openwrt/barrier_breaker# make distclean

删除所有编译的或者配置的和下载的feeds内容以及下载的软件包源码,还有.config配置文件。

6. 烧写固件

打开tftpd32,把刚才编译生成的固件openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin拷贝到tftpd32软件目录

下面的操作根据自己的设备的u-boot操作,不同的u-boot操作步骤和设置不同。

用网线连接设备和电脑,用串口线连接设备和电脑,打开SecureCRT,波特率设置为57600。给设备上电启动设备,

在倒计时时按4进入命令行界面

设置tftpboot相关参数

RT5350 # set ipaddr 192.168.0.100 设置设备IP地址

RT5350 # set serverip 192.168.0.104 设置tftp服务器IP地址,即与你的设备相连的电脑的IP地址

RT5350 # set bootfile openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin 设置要下载的固件名称

RT5350 # save 将设置写入

Flash

本文已影响