$, $, $$, $$, $$a (Run Script File)
$<, $><, $$<, $$><, $$>a<读取指定的脚本文件内容,然后把它的内容做为调试器的命令行输出
$<Filename
$><Filename
$$< Filename
$$>< Filename
$$>a< Filename [arg1 arg2 arg3 ... ]
Filename:文件的路径,可以包含空格
argn:指定任意数目的参数,用于调试器传送给脚本,在执行脚本文件之前,脚本文件中任意${$argn}格式的字符串,对应被调试器传送进来的argn替换,具体看后面的实例
参数中不能包括引号或分号,多个参数应该用空格来分隔开,如果一个参数包含了空格,那么就用引号把它括起来,你可以使用任意多的参数
备注:
如果你使用$$<或$$><,那么Filename之前可以不带空格,你能在这个命令之后使用一个分号或其他命令,你可以选择Filename使用引号括起来,但不是必需的,即使Filename中含有空格或同一行中有其他命令(这个前面肯定要带分号来分隔不同命令):
0:000> $$>< c:\1.txt
The first argument is ${$arg1}
The fifth argument is ${$arg5}
The fourth argument is ${$arg4}
0:000> $$><c:\1.txt
The first argument is ${$arg1}
The fifth argument is ${$arg5}
The fourth argument is ${$arg4}
0:000> $$><"c:\1.txt"
The first argument is ${$arg1}
The fifth argument is ${$arg5}
The fourth argument is ${$arg4}
0:000> $$><c:\1.txt; r ebx
The first argument is ${$arg1}
The fifth argument is ${$arg5}
The fourth argument is ${$arg4}
ebx=00000000
也就是$$><或$$<会把分号之前(如果没有分号就是整行)都当成Filename
如果你使用$<或$><,你不能在Filename之前加任意空格,你也不能使用引号把Filename括起来,你也不能在这个命令后加分号或其他命令!
0:000> $><c:\1.txt
The first argument is ${$arg1}
The fifth argument is ${$arg5}
The fourth argument is ${$arg4}
0:000> $>< c:\1.txt
Command file execution failed, Win32 error 0n2"系统找不到指定的文件。"
0:000> $><c:\1.txt;
Command file execution failed, Win32 error 0n2"系统找不到指定的文件。"
0:000> $><c:\1.txt;r eax
Command file execution failed, Win32 error 0n2"系统找不到指定的文件。"
意思,它总是把<后的所有内容当成Filename!
$<和$$<照字面意思执行在脚本文件中的命令,它们打开脚本文件,使用分号替换所有的回车换行
最常用的:
$$>a< FileName arg1 arg2..... argn; cmd
$$>a<是允许调试器向脚本文件中传入参数,如果FileName中有空格,则一定要包含在双引号中 同样arg1..argn也是这么定义的,你可以不带双引号,但如果有空格,就得带上,最后一个参数要以分号结束,不然会把后面的cmd命名也认为是参数!,如果传入参数在脚本中没用到,就无视了,脚本使用$($arg1}这样去调用参数1
如果这个参数没被传入,就直接显示${$arg1}
帮助中的小示例:
.echo The first argument is ${$arg1}.
.echo The fifth argument is ${$arg5}.
.echo The fourth argument is ${$arg4}.
运行windbg:
0:003> $$>a< "c:\1.txt" "First one" Two "Three More" "Fourl"; recx
the first argument is First one
the first argument is ${$arg5}
the first argument is Fourl
ecx=00000000
注意几点:
1.Two没带双引号,它仍是对应${$arg2}
2.Fourl后带了分号,表示传参从此结束了
3.recx是显示ecx的值,当然你也可以写成r ecx
其实就是对于$$>a<这种,第一个分号前的是传入的参数,之后就是cmd1;cmd2;cmd3这样了
转载于:https://www.cnblogs.com/hgy413/archive/2013/05/21/3693421.html
最新文章
- CMD如何生成文件夹目录结构
- WebChat 清爽来袭 -- JavaChat系统Ⅳ
- java 有序列表_关于算法:在Java中为列表列表生成唯一的有序非重复组合
- Google https服务被屏蔽
- 从qq服务器删除误收邮件,如何恢复从qq邮箱删除的电子邮件
- IOS上路_04-简单示例-图片浏览器
- 倾斜摄影和近景摄影技术
- config.txt for raspberry pi b 2
- 华三交换机配置access命令_华3交换机配置命令大全
- 深度学习一(PyTorch物体检测实战)
- springboot 配置 P6spy
- 技术架构图-大数据架构
- 【渝粤题库】广东开放大学 服务质量管理 形成性考核
- R语言古风诗人转职c++
- Unity游戏安卓和苹果游戏中植入广告增加收入
- Java笔记 - 网络编程
- 扫地机器人朋友圈文案_扫地机器人方案
- 【超融合】818超融合发展经历了哪几个阶段!
- create和qypt qt_pyqt 与 qt c++ 开发windows客户端程序区别
- 如何评价掘金量化的质量?
热门文章
- Android日志系统Logcat源代码简要分析
- append 注意事项
- 搭建自己的博客(二十):优化博客评论功能
- 计算机信息安全技术_第一章概述
- 计蒜客NOIP2017提高组模拟赛(三)day2-小区划分
- 1249 Problem Q
- CentOS下配置多个Tomcat同时运行 本篇文章来源于 Linux公社网站(www.linuxidc.com)
- C#4.0新特性:可选参数,命名参数,Dynamic
- WebSphere报错指南
- Python+selenium搭建自动化框架