庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>汇编语言>技巧教程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

了解命令行参数

 作者:本站收集   日期:2005-8-1 15:50:39
字号选择〖 〗/ 双击滚屏 单击停止   

  在dos下带命令行执行程序是常有的事,在windows下也是如此,如何正确的从命令行提取需要的数据,首先必须了解命令行。本程序就是用来分析命令行参数的。
---------------------------------------------------------------
;文件名:14.asm
;取命令行参数并显示,用于分析命令行参数可能出现的情况


        .386
        .model flat,stdcall
        Option CaseMap:none

include windows.inc
include kernel32.inc
include user32.inc
include masm32.inc

includelib kernel32.lib
includelib user32.lib
includelib masm32.lib

            .data
szCaption   db "GetCommandLine",0
Fg          db ' ',0                ;空格(分隔符)
Crlf        db 13,10,0              ;回车换行

            .data?
Temp        db 10 dup(?)            ;用来临时存放数据
OutString   db 600 dup(?)           ;存放输出字符

        .code
start:
        invoke GetCommandLine                   ;取命令行参数
        mov esi,eax
        invoke lstrcat,addr OutString,eax       ;合并字符
        invoke lstrcat,addr OutString,addr Crlf
        invoke lstrlen,esi                      ;取字符串长度
        mov ecx,eax
        cld
L1:
        push ecx
        xor eax,eax
        lodsb
        invoke dw2hex,eax,addr Temp
        invoke lstrcat,addr OutString,addr Temp+6
        invoke lstrcat,addr OutString,addr Fg
        pop ecx
        loop L1
        invoke MessageBox,NULL,addr OutString,addr szCaption,MB_OK
        invoke ExitProcess,NULL
        end start
---------------------------------------------------------------
程序执行的结果:

    1、编译成console后在dos提示符下执行
      

    2、编译成windows后在dos提示符下执行
      

    3、编译成console/windows后创建可执行文件的快捷方式,设立命令行参数
      
      
    4、不带任何参数
      

---------------------------------------------------------------
结论:

1、命令行上可有多个数据
2、各个数据项用一个或多个空格或制表符分隔
3、第一个数据项代表当前执行的程序名
4、第一个数据两边可能有双引号,也可能没有
5、引号内的程序名串中间可能有空格
6、若不带任何参数,则最后一个字符总是空格

上一篇:从命令行提取文件名    下一篇:压缩PE大小  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-8-1 15:50:39
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿