邪恶八进制信息安全团队技术讨论组's Archiver

冰血封情 2004-7-11 03:23

[转载]使用QB实现对DOS批处理的编译

文章作者:demonalex_at_dark2s.org

附:现在批处理的作用越来越大了:P,不过传统的BAT批处理是以ASCII码保存的,
随便拿个ASCII编辑器就可以打开来看个‘究竟’,有什么办法可以将其‘变’为
二进制文件呢?看完此烂文后应该让您有所启发,也让您能更认清QB编程的乐趣。

-----------------------------------------------------------------
QB有一组命令为“文件及目录处理命令”,其中有一个语句叫SHELL

格式:SHELL 空/"命令等"

功能:暂停执行一个QBasic程序,运行一个DOS命令或批处理文件。
说明:“命令等”为DOS命令或批处理文件名。当DOS命令执行完成后,将返回QBasic环境。
     如果命令为空的话,SHELL将转至DOS状态下并显示DOS提示符待命,用EXIT命令从DOS状态返回QBasic环境。

示例:
    SHELL                 在DOS提示符状态,当打入EXIT后重返程序。
    SHELL "dir/w"            显示dir/w后的输出结果在输出终端(显示器),然后返回程序。

-----------------------------------------------------------------
开始示范:
例如有一BAT文件内容为:

dir/w
path
set

要把它编译成二进制的EXE文件。首先打开QuickBasic。

在主编辑窗口键入:

SHELL "dir/w"       '把dir/w后的结果输出
SHELL "path"        '把path后的结果输出
SHELL "set"        '把set后的结果输出
END              '结束程序

好了。保存后,打开菜单栏的“RUN”,然后按“MAKE EXE FILE...”,输入要输出的EXE文件的路径后,
记的要选择“Stand-Alone EXE file”(否则此程序就必须要与QB运行库同一目录才能运行了。)

这个菜单有3项:
1)EXE Requiring BRUN40.EXE      '生成需要4.0运行库的EXE文件
2)Produce Debug Code          '生成调试文件
3)Stand-Alone EXE File         '生成“独自”运行(不需要运行库)的EXE文件

编译好就可以自己试一下了。:)

----------------------------------------------------------------

附录:

其他文件与目录管理命令:

格式:MKDIR "路径"
功能:建立子目录
示例:MKDIR "C:\ABC\CBA"

格式:CKDIR "路径"
功能:改变当前目录
示例:CKDIR "C:\ABC"

格式:RKDIR "路径"
功能:删除子目录
示例:RKDIR "C:\ABC\CBA"

格式:FILES 空/"路径"
功能:与DIR命令相同
示例:FILES "C:\ABC"

格式:KILL "路径"
功能:删除文件,与DEL不同之处在于不会提示“Y/N”,也不会显示删除过程,慎用!
示例:KILL "C:\ABC\*.EXE"

格式:NAME "旧文件名" AS "新文件名"
功能:为文件改名
示例:NAME "C:\ABC\ABC.TXT" AS "C:\ABC\CBA.TXT"

格式:SYSTEM
功能:关闭程序,返回操作系统
示例:MKDIR "C:\ABC"

-----------------------------------------------------------------

在下水平有限,所以如果大家想更深入学习的话,建议买一本有关QBASIC的书来看一下。
若此文有不当之处,还请大家海涵,并予以指教,谢谢。

东方 2004-7-11 23:20

呵呵 ,思路不错
也可以用程序暂时生成bat文件 执行完后删除
如果用c语言的话 就用system()函数了,不过好像只能执行的是dos的内部命令

冰血封情 2004-7-12 00:26

就没有办法可以调用其他的命令么?
加到软件编译的程序包里可以不可以么?
遗憾ing

东方 2004-7-17 15:25

你可以把要用的exe文件写到缓存数组里,然后临时建立
用完后删除

=_=!!

页: [1]
© 1999-2008 EvilOctal Security Team