imacros命令
Imacros命令使用语法一、命令参考1.ADD功能:为变量添加一个值语法:ADD result_var added_value示例1:SET !VAR1 100ADD !VAR1 -20=> Content of !VAR1 is 80示例2:SET !VAR1 HelloADD !VAR1 <SP>World<SP>ADD !VAR1 2010=> Content of !VAR1 is Hello World 2010示例3:ADD !EXTRACT {{!COL1}}2.CLICK语法:CLICK X=n Y=m示例1:URL GOTO=/Automate/TestForm1 ' Use CLICK command to select Apple Pie for dessertCLICK X=316 Y=4533.DISPLAY语法:DISPLAY message_text示例:DISPLAY "Loop is {{!LOOP}}"display #HIDEDISPLAY#Display ""4.EVAL功能:重新运算求出参数的内容示例:SET !VAR1 EVAL("Math.floor(Math.random()*5 + 1);")WAIT SECONDS={{!VAR1}}5.EVENT语法:EVENT TYPE=type [SELECTOR|XPATH]=localizer[BUTTON|POINT|CHAR|KEY]=[button|point|char|key] [MODIFIERS=modifiers]参数:TYPEThe event type to be fired by the command. Allowed values are: Mouse events•MOUSEDOWN,•MOUSEMOVE,•MOUSEUP,•CLICK,•DBLCLICKKeyboard events•KEYDOWN•KEYUP•KEYPRESS示例:URL GOTO=https:///#!/EVENT TYPE=MOUSEDOWNSELECTOR="#preview-svg>svg>svg>svg>foreignObject>DIV" BUTTON=0EVENTS TYPE=MOUSEMOVESELECTOR="#preview-svg>svg>svg>svg>foreignObject>DIV"POINTS="(131,254),(132,254),(134,254),(136,255),(139,256),(142,256),( 147,256),(153,257),(160,257),(169,258),(190,258)"EVENT TYPE=MOUSEMOVE SELECTOR="#containment" POINT="(204,257)"EVENT TYPE=MOUSEUP POINT="(386,254)"6.FILEDELETE语法:FILEDELETE NAME=file_name示例:FILEDELETE NAME=c:\output\mydata.csv7.FILTER语法:FILTER TYPE=IMAGES STATUS=(ON|OFF)Parameters•TYPESpecifies the type of elements to filter. Currently only IMAGES is supported •STATUSSpecifies whether the filter is turned on of off.8.FRAME语法:FRAME (F=n|NAME=id)示例:FRAME F=6TAG POS=1 TYPE=SPAN ATTR=TXT:Select<SP>pathFRAME NAME=contentsTAG POS=1 TYPE=P FORM=NAME:f3 ATTR=TXT:* EXTRACT=TXT9.ONDIALOG语法:ONDIALOG POS=n BUTTON=(OK|YES|NO|CANCEL) [CONTENT=some_content]示例:URL GOTO=/Automate/DialogsONDIALOG POS=1 BUTTON=OK CONTENT=TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormNameATTR=VALUE:Popup<SP>1ONDIALOG POS=1 BUTTON=OK CONTENT=TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormNameATTR=VALUE:Ask<SP>me<SP>a<SP>questionWAIT SECONDS=3TAG POS=1 TYPE=INPUT:BUTTON FORM=NAME:NoFormNameATTR=VALUE:Change<SP>background<SP>back<SP>to<SP>default<SP>10.ONDOWNLOAD语法:ONDOWNLOAD FOLDER=folder_name FILE=file_name WAIT=[YES|NO] CHECKSUM=[MD5|SHA:hexadecimal_string]示例1:ONDOWNLOAD FOLDER=* FILE=*ONDOWNLOAD FOLDER=C:\MyFiles\ FILE=myDownload.exe ONDOWNLOAD FOLDER=* FILE=+{{!NOW:yymmdd}}ONDOWNLOAD FOLDER=* FILE=* WAIT=YESCHECKSUM=SHA1:3FD97C2EC475731997F7F28CB5C07F3D1A1E820A示例2:‘下载PDF文件URL GOTO=/Automate/PDFDemo ONDOWNLOAD FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}TAG POS=1 TYPE=A ATTR=TXT:*View<SP>iMacros<SP>Case* 11.ONERRORDIALOG语法:ONERRORDIALOG BUTTON=(YES|NO) CONTINUE=(YES|NO)12.ONLOGIN语法:ONLOGIN USER=username PASSWORD=password RETRY=[YES|NO] 示例:ONLOGIN USER=username PASSWORD=passwordURL GOTO=13.PAUSE语法:PAUSE如果宏应该等待手动用户输入或进行调试,那么该命令非常有用。
14.PROMPT语法:PROMPT prompt_text variable_name [default_value]示例:SET !ENCRYPTION NOPROMPT "Please enter your password:" !VAR1TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:loginbox ATTR=ID:pass CONTENT={{!VAR1}}15.PROXY语法:PROXY ADDRESS=proxy_URL:port [BYPASS=page_name]示例:PROXY ADDRESS=192.1.8.1:8080PROXY ADDRESS=:8080 BYPASS=*imacros*16.SAVEAS语法:SAVEAS TYPE=(CPL|MHT|HTM|TXT|EXTRACT|BMP|PNG|JPEG) FOLDER=folder_name FILE=file_name示例1:SAVEAS TYPE=MHT FOLDER=* FILE=homepage_currentSAVEAS TYPE=BMP FOLDER=C:\Screenshots FILE=+{{!NOW:ddmmyyyy}} SAVEAS TYPE=EXTRACT FOLDER="C:\\My Macros\\Downloads FILE=*" SAVEAS TYPE=EXTRACT FOLDER=C:\My<SP>Macros\Downloads FILE=*TAG POS=1 TYPE=H1 ATTR=TXT:* EXTRACT=TXTSAVEAS TYPE=CPL FOLDER=d:\reports FILE=report_{{!EXTRACT}}.htm示例2:URL GOTO=/Automate/SaveAsWAIT SECONDS=3URL GOTO=/imacros/'Save the page in all three different formatsSAVEAS TYPE=HTM FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}} SAVEAS TYPE=TXT FOLDER=* FILE=+_{{!NOW:yyyymmdd_hhnnss}}17.SAVETARGETAS把目标另存URL GOTO=/Automate/SaveTargetAs'Download 1'Define download folder and fileONDOWNLOAD FOLDER=* FILE=+_pdf-file_{{!NOW:yyyymmdd_hhnnss}}'TAG statement, the CONTENT=EVENT:SAVETARGETAS part was added manually after recording TAG POS=1 TYPE=A ATTR=TXT:"Open PDF Document" CONTENT=EVENT:SAVETARGETAS'Download 2ONDOWNLOAD FOLDER=* FILE=+_video-file_{{!NOW:yyyymmdd_hhnnss}}TAG POS=1 TYPE=A ATTR=TXT:"Play Video" CONTENT=EVENT:SAVETARGETAS18.SAVEITEM语法:TAG POS=1 TYPE=INPUT:IMAGE FORM=NAME:frmImpact2 ATTR=ID:mapimg CONTENT=EVENT:SAVEITEMTAG POS=1 TYPE=IMG ATTR=HREF:http://*.jpg CONTENT=EVENT:SAVEITEM 19.SCREENSHOT语法:SCREENSHOT TYPE=(PAGE|BROWSER) FOLDER=folder_name FILE=file_name 示例:URL GOTO=/imacros/home/v9/home.aspSCREENSHOT TYPE=Page FOLDER=* FILE=*SCREENSHOT TYPE=Browser FOLDER=* FILE=*20.SEARCH语法:SEARCH SOURCE=(TXT|REGEXP) IGNORE_CASE=YES EXTRACT=$1示例:URL GOTO=/'Check for GA ObjectSEARCH SOURCE=TXT:"'GoogleAnalyticsObject'"'Check for GA Object, ignore caseSEARCH SOURCE=TXT:"'googleanalyticsobject'" IGNORE_CASE=YES'Use regular expression to extract dataSEARCH SOURCE=REGEXP:"ga\\('create', '([^']+)', ''\\)" EXTRACT="Tracker is $1"'Display extracted dataPROMPT {{!EXTRACT}}21.SET语法:SET var value示例:SET myDelay 10WAIT SECONDS={{myDelay}}SET !VAR1 Hello<SP>World=> Content of !VAR1 is "Hello World".22.STOPWATCH语法:STOPWATCH LABEL=id注意:您需要匹配的一对,因为这个命令返回两个秒表命令之间的差异。
Asterisk CLI 命令列表
以下的命令是在CLI控制台上用help命令列出的集合:!: 执行一个shell command用法:!<command>说明:执行一个shell命令abort halt: 取消一个暂停用法:abort shutdown说明:让Asterisk放弃一个正在执行的shutdown或者restart,正常继续运行呼叫操作add extension: 增加新的extension到context用法:add extension <exten>,<priority>,<app>,<app-data> into <context> [replace]说明:这个命令会增加一个新的extension到<context>。
如果已经有了同样的priority的extension‘,最后的replace’参数可以替代这个extension例子:add extension 6123,1,Dial,IAX/216.207.245.56/6123 into local现在,你可以拨打6123,并且和Markster交谈了。
add ignorepat:增加新的匹配模式用法:add ignorepat <pattern> into <context>说明:这个命令增加一个新的匹配模式到context <context>例子:add ignorepat _3XX into localadd queue member: 向指定的队列增加一个通道用法:add queue member <channel> to <queue> [penalty <penalty>]说明:向一个队列增加一个通道成员,[penalty <penalty>]指明这个通道成员的优先级ael debug contexts:启用AEL contexts调试ael debug macros:启用AEL macros调试ael debug read:启用AEL read调试ael debug tokens:启用AEL tokens调试ael no debug:关闭AEL调试信息ael reload:重载AEL配置agent logoff:让一个座席离线用法:agent logoff <channel> [soft]说明:让一个座席不在登录进来,如果指定了soft选项,不会强行挂机退出通话agi debug:启用AGI调试用法:agi debug说明:启用为调试目的而将AGI传输的内容输出agi no debug:关闭AGI调试用法:agi no debug说明:关闭为调试目的而将AGI传输的内容输出到控制台cb mysql status:显示CBMySQL的连接状态信息用法:cb mysql status说明:列出当前CBMySQL的mysql连接状态结果例子:Connected to conference@localhost, port 3306 with username mvb2000user for 6 days, 10 hours, 11 minutes, 40 seconds.Wrote 0 records since last restart.cdr mysql status:显示cdr_mysql的连接状态信息用法:cdr mysql status说明:显示cdr_mysql的当前连接状态例子:Connected to mvb2000cdrdb@localhost, port 3306 using table cdr for 6 days, 10 hours, 14 minutes, 46 seconds.Wrote 7 records since last restart.cdr status:Display the CDR status用法:cdr status说明:显示通话详细记录引擎的系统状态例子:CDR logging: enabledCDR mode: simpleCDR registered backend: csvCDR registered backend: mysqlCDR registered backend: cdr_managerdatabase del:删除数据库的key/value用法:database del <family> <key>说明:删除Asterisk数据库中指定的family和key的记录database deltree: Removes database keytree/values用法:database deltree <family> [keytree]说明:在Asterisk数据库中删除一个family或者指定的在family中的keytreedatabase get: Gets database value用法:database get <family> <key>说明:在Asterisk数据库中为指定的family和key检索记录database put: Adds/updates database value用法:database put <family> <key> <value>说明:在asterisk数据库中以指定的famliy、key、value新增或者修改一个记录database show显示数据库内容用法:database show [family [keytree]]说明:显示Asterisk数据库的内容,可选的关联一个指定的family或者family和keytreedatabase showkey显示数据库内容用法:database showkey <keytree>说明:显示Asterisk数据库内容,关联到指定的keydebug channel:启用在一个通道上的调试信息用法:debug channel <channel>说明:在指定的通道上打开调试信息debug level:设置全局调试信息的等级用法:debug level <level> [filename]说明:设置调试为指定的等级(0为关闭调试)。
GCC使用说明
GCC使用手册及常用命令行GCC使用手册作者:Clock1.前言GCC编译器的手册(GCC MANUAL)的英文版已经非常全面,并且结构也非常完善了,只是一直都没有中文的版本,我这次阅读了GCC编译器的主要内容,对手册的内容进行了结构性的了解,认为有必要对这次阅读的内容进行整理,为以后的工作做准备。
由于我对这个英文手册的阅读也仅仅是结构性的。
因此有很多地方并没有看,所以这篇文档的内容我也只能写出部分,对于以后需要详细了解的地方,会再往这篇文档中增添内容,需要增添的内容主要是编译器的各种开关。
2. GCC功能介绍GCC编译器完成从C、C++、objective-C等源文件向运行在特定CPU硬件上的目标代码的转换(这是任何一个编译器需要完成的任务)。
GCC能够处理的源文件分为C、C++、Objective-C、汇编语言等。
对于这些源文件,用他们的后缀名进行标示。
GCC能够处理的后缀有:a. *.c *.C (C语言)b. *.cxx *.cc (C++语言)c. *.m (面向对象的C)d. *.i (预处理后的C语言源文件)e. *.ii (预处理后的C++语言源文件)f. *.s *.S (汇编语言)h. *.h (头文件)目标文件可以是:a. *.o 编译连接后的目标文件b. *.a 库文件编译器把编译生成目标代码的任务分为以下4步:a.预处理,把预处理命令扫描处理完毕;b.编译,把预处理后的结果编译成汇编或者目标模块;c.汇编,把编译出来的结果汇编成具体CPU上的目标代码模块;d.连接,把多个目标代码模块连接生成一个大的目标模块;3. GCC开关GCC的运行开关共分为11类,这是类开关从11个方面控制着GCC程序的运行,以达到特定的编译目的。
3.1. 全局开关(OVERALL OPTIONS)全局开关用来控制在“GCC功能介绍”中的GCC的4个步骤的运行,在缺省的情况下,这4个步骤都是要执行的,但是当给定一些全局开关后,这些步骤就会在某一步停止执行,这产生中间结果,例如可能你只是需要中间生成的预处理的结果或者是汇编文件(比如拟的目的是为了看某个CPU上的汇编语言怎么写)。
宏指令使用说明
威纶通触摸屏宏指令使用说明一、 宏指令的结构一般为以下格式全局变量声明 ………………………………………………可选Sub Function Block Declarations(子函数声明)…………可选局部变数声明End Sub(结束子函数)macro_command main() [主函数]…………………………必须局部变数声明[各式语句]end macro_command [结束主函数] ……………………必须一个宏指令必须有一个且只有一个主函数,用来开始宏指令的执行。
格式为:macro_command函数名称()end macro_command双斜线"//" 代表程序批注,在它后面的文字不会被执行。
二、宏指令的语法常数:常数是一个可以被各式语句直接使用的固定的资料。
有如下格式:下面即为一个简单的常数使用的范例。
macro_command main()short A, B // 声明A 和B 为短整型变数A = 1234B = 0x12 // 1234 和0x12 即为常数end macro_command变数:变量是一个代表着各种资料的名称。
在宏指令中,这些资料可以随着宏指令语句执行的结果改变而改变。
必须以英文字母开头。
变量名称长度不超过32 个字符。
系统保留寄存器名称不能作为变量名称。
下面为8 种不同的变量类型,前5种为有号数值类型,后3种为无号数值类型:变数声明:变量必须在使用前声明。
所以,在宏指令,所有的变量都必须在语句使用前都被声明完成。
声明变量时,先定义变量的类型,后面再跟着变量名称。
如下范例:int ashortb, switchfloatpressureunsigned short c数组声明:宏指令支持一维数组(下标从0 开始)。
声明数组变量时,先定义数组变量的类型,变量名称,接着就是该数组变量的个数,变量个数必须放置在“““”符号中。
数组变量的长度为1 ~ 4096。
预处理器宏指令(Macro)
预处理器宏指令(Macro)预处理器宏指令(Macro)1 ⽬的:编译之前进⾏预处理,批量处理源代码⽂件(宏)2 原理:编译之前由编译器调⽤预处理器,批量处理源代码中的指定标志⽂本。
预处理器是⼀个专⽤于处理源代码⽂本的独⽴程序,由编译器调⽤。
应该尽量减少使⽤预处理命令,因为不同的编译器的命令不同。
3 ⽅法:宏⼀般使⽤⼤写标识,以区别常规代码。
应该尽量减少宏的使⽤。
3.1.1定义替换标志:#define NAME VALUE,value只能是⼀个字符串,如果多于⼀⾏,则⽤\换⾏。
⽰例:#define APPTYPE 2qDebug()<<"APPTYPE="<<APPTYPE;3.1.2取消替换标志:#undef NAME。
3.1.3替换为字符串:在#define的参数中,如果使⽤#,则将参数替换为字符串。
⽰例:结果: max: hello world3.1.4连接参数:在#define的参数中,如果使⽤##,则将前后两个操作符连接为⼀个操作符。
结果:max: helloworld3.2 条件编译:#if…#elif…#else…#endif, #ifdef,#ifndef。
3.2.1数值条件判断:#if…#elif…#else…#endif。
⽐较数值,可以使⽤C的逻辑运算。
可以嵌套。
不能直接⽐较字符串。
⽰例:#if(APPTYPE==1)//cmdint iRst =gutang::cmdcore::QtCmdCore::processCmd (argc,argv);return iRst;#elif(APPTYPE==2)//server cmdqDebug()<<"APPTYPE="<<APPTYPE;int iRst =gutang::cmdcore::QtCmdCore::processCmd (argc,argv);gutang::cmdcore::QtCmdCore::processInput();return iRst;#else //guiQHash<QString,QString> hashArgv =gutang::cmdcore::QtCmdCore::parseCmd (argc,argv); MainWindow w(hashArgv);w.show ();#endif3.2.2定义与否判断:defined(NAME),ifdef判断宏名称是否已经定义。
imacros教程JS调用imacros所用到的函数
imacros教程(二):JS调用imacros所用到的函数
JS调用imacros所用到的函数
一、iimPlay() : 调用一个iim脚本。
完整调用方法为 : int ret_code = iimPlay ( String macro [, int timeout] ) ,返回值ret_code为1时说明iim被正确调用。
小于0则说明执行脚本时出现了错误,
履行 iMacros 的脚本语句,语句可以是一段,必须以 CODE: 起头,行间要用“\n” 分隔,返回值为负数代表履行有错
二、iimSet() :设置自定义变量
语法为:int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )
最主要的就是上面两个,还可以了解一下
iimDisplay(msg):以独立对话框形式显示一个消息
string=iimGetLastExtract([n]) :返回第n此从页面里通过Extract得到的数据
iimGetLastError() 返回最近差错对应的差错信息(字符串)
Tag 未找到时会默认会等候 !TIMEOUT /10 这么常光阴,默认值就是 6 秒
分享到:。
mobaxterm的macros用法
mobaxterm的macros用法
Mobaxterm 是一款强大的终端模拟器,内置了一个 Cygwin,支持很多基本的常用的Linux 命令,比如 awk,cat,grep,find,tar,history 等。
其中,Macros 是Mobaxterm 中的一个功能,它可以帮助用户快速执行一些常用的命令或操作。
以下是 Macros 的具体用法:
1. 打开 Mobaxterm 并连接到你的远程会话。
2. 在会话窗口的菜单栏找到“Macros”(或者使用快捷键“Ctrl+M”)。
3. 选择“Record a new macro”开始录制宏。
4. 在会话中执行你希望宏自动执行的命令和操作。
5. 完成后,返回到“Macros”菜单并选择“Stop recording”。
6. 给宏命令命名并保存。
7. 要使用宏,只需打开“Macros”菜单,然后选择你想要执行的宏命令即可。
此外,你还可以通过右击“Saved macros”列表中的宏来对其进行重命名或编辑。
如果当前版本不支持直接录制宏,你可以在“Macros”鼠标右键 Import macro 导入附件文件,然后根据自己的需要编辑更改常用的命令。
imacros使用教程与注意事项
imacros使用教程与注意事项对于一些简单的重复操作,可以利用imacros来执行。
这里分享一些简单的教程和注意事项工具/原料•firefox浏览器或chrome浏览器•imacors 插件macros教程(一):imacros变量1.1imacros能记录你在网页中的动作,然后模拟你的动作自动重复执行。
进阶应用主要在于两个方面:1.用JS动态调用,重复执行之。
2.调用CSV文件,这个不错哦(还可以调用数据库,这个没用过。
)安装和火狐一般扩展安装方法一样,不会装的用google,安装后点击imacros的按钮,浏览器左边出现它的工作界面,就三部分:1.运行:(可以运行所存在的宏,不解释,别害怕很好用的)2.记录:(点记录即可记录你在网页中的动作,按停止即可自动保存为当前宏)3.编辑:(可以对存储的宏进一步编辑,更适合你的用途)imacros变量分为系统内定变量和用户自定义变量一、系统内定变量系统内定变量中有三个特殊的变量:VAR1 VAR2 VAR3 可以赋予任何值。
常见的系统内见变量:SET !VAR1 hello<sp>world设定!VAR1为 hello world (ps: <sp>代表空格<br>代表回车)SET !TIMEOUT 25 '宏超时值PROMPT Pleaseentertext !VAR1'弹出一个输入框,你在输入框中输入的内容将传到!VAR1中。
二、用户自定义变量:用户外部传入的变量iimSet(“myurl”,””)调用变量时用{{myurl}}2.2imacros教程(二):JS调用imacros所用到的函数JS调用imacros所用到的函数一、iimPlay() : 调用一个iim脚本。
完整调用方法为 : int ret_code = iimPlay ( String macro [, int timeout] ) ,返回值ret_code为1时说明iim被正确调用。
g++参数介绍
g++参数介绍[介绍]gcc and g++分别是gnu的c & c++编译器gcc/g++在执⾏编译⼯作的时候,总共需要4步1.预处理,⽣成.i的⽂件预处理器cpp2.将预处理后的⽂件不转换成汇编语⾔,⽣成⽂件.s编译器egcs3.有汇编变为⽬标代码(机器代码)⽣成.o的⽂件汇编器as4.连接⽬标代码,⽣成可执⾏程序连接器ld1.总体选项-E只激活预处理,这个不⽣成⽂件,你需要把它重定向到⼀个输出⽂件⾥⾯.例⼦⽤法:gcc -E hello.c > pianoapan.txtgcc -E hello.c | more慢慢看吧,⼀个hello word 也要与处理成800⾏的代码-S只激活预处理和编译,就是指把⽂件编译成为汇编代码。
例⼦⽤法gcc -S hello.c他将⽣成.s的汇编代码,你可以⽤⽂本编辑器察看-c只激活预处理,编译,和汇编,也就是他只把程序做成obj⽂件例⼦⽤法:gcc -c hello.c他将⽣成.o的obj⽂件2.⽬录选项-Idir在你是⽤#include"file"的时候,gcc/g++会先在当前⽬录查找你所制定的头⽂件,如果没有找到,他回到缺省的头⽂件⽬录找,如果使⽤-I制定了⽬录,他回先在你所制定的⽬录查找,然后再按常规的顺序去找.对于#include,gcc/g++会到-I制定的⽬录查找,查找不到,然后将到系统的缺省的头⽂件⽬录查找-include file-i相当于“#include”包含某个代码,简单来说,就是便以某个⽂件,需要另⼀个⽂件的时候,就可以⽤它设定,功能就相当于在代码中使⽤#include例⼦⽤法:gcc hello.c -include /root/pianopan.h-I-就是取消前⼀个参数的功能,所以⼀般在-Idir之后使⽤-idirafter dir在-I的⽬录⾥⾯查找失败,讲到这个⽬录⾥⾯查找.-iprefix prefix-iwithprefix dir⼀般⼀起使⽤,当-I的⽬录查找失败,会到prefix+dir下查找-Ldir制定编译的时候,搜索库的路径。
gcc命令大全
GCC 选项GCC 有超过100个的编译选项可用. 这些选项中的许多你可能永远都不会用到, 但一些主要的选项将会频繁用到. 很多的GCC 选项包括一个以上的字符. 因此你必须为每个选项指定各自的连字符, 并且就象大多数Linux 命令一样你不能在一个单独的连字符后跟一组选项. 例如, 下面的两个命令是不同的:gcc -p -g test.cgcc -pg test.c第一条命令告诉GCC 编译test.c 时为prof 命令建立剖析(profile)信息并且把调试信息加入到可执行的文件里. 第二条命令只告诉GCC 为gprof 命令建立剖析信息.当你不用任何选项编译一个程序时, GCC 将会建立(假定编译成功)一个名为a.out 的可执行文件. 例如, 下面的命令将在当前目录下产生一个叫a.out 的文件:gcc test.c你能用-o 编译选项来为将产生的可执行文件指定一个文件名来代替 a.out. 例如, 将一个叫count.c 的C 程序编译为名叫count 的可执行文件, 你将输入下面的命令:gcc -o count count.c注意: 当你使用-o 选项时, -o 后面必须跟一个文件名.-c 只编译并生成目标文件。
--------------------------------------------------------------------------------gcc and g++分别是gnu的c & c++编译器gcc/g++在执行编译工作的时候,总共需要4步1.预处理,生成.i的文件[预处理器cpp]2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs]3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as]4.连接目标代码,生成可执行程序[链接器ld][参数详解]-x language filename设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定C 语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C 代码文件的后缀名是.pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。
iMacros使用进阶
iMacros使用进阶iMacros使用作者:zymaxsiMacros与js当你已经初步学会了如何使用iMacros后,为了实现更加复杂的操作,可以尝试使用用js来调用iMacros。
你可以在脚本中重命名一个.js后缀的脚本,之后运行该脚本将以js方式调用。
你也可以从外部载入一个js脚本,使用记录-载入或直接复制脚本到iMacros的Datasources目录第一次使用js调用iMacros脚本首先录制一个简单的脚本google.iimVERSION BUILD=6111213 RECORDER=FX'作者zymaxsTAB T=1URL GOTO=/TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:f ATTR=NAME:q CONTENT=iMacrosTAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:f ATTR=NAME:btnG&&VALUE:Google搜索录制完成后,再导入一个空文件,文件名为google.js。
编辑google.js:iimPlay("google");确定保存,然后运行这个文件运行刚刚的js我们发现,使用iimPlay可以方便的调用一个iim脚本。
iimPlay的完整调用方法为int ret_code = iimPlay ( String macro [, int timeout] )(备注:作者没有发现timeout的具体作用)返回值ret_code为1时说明iim被正确调用。
小于0则说明执行脚本时出现了错误如何调用外部参数在很多情况下,我们希望最终运行时输入的数据并不是录制的数据,而是需要自定义可修改的。
要达到这个使用目的可以使用iimSet()设置自定义变量-var_varname,然后在脚本中调用这个参数。
int ret_code = iimSet ( String -var_VARNAME, String VARVALUE )?调用示例修改google.js:iimSet ("-var_search","imacros")?iimPlay("google");修改google.iim中:CONTENT=Imacros 为CONTENT={{search}}再次运行google.js发现了吗,搜索传入的参数可以通过这种方式任意修改。
