2023年12月13日发(作者:)

NirCmd 命令集

NirSoft的每款小工具都可谓经典之作,官网上公布出的90%以上的工具本人都用过或正在用。着实佩服nirsoft编程人员的功底,每款软件区区几十KB的大小,但它的某些功能确是无法比拟的,废话不多说,有兴趣的可以经常上去猫两眼.

/

以下介绍的是一款命令行工具---Nircmd(专用于执行批处理脚本,附带的用于执行控制台命令)。用好了它,可以提高系统设置的便利性、从而大大增强我们批处理脚本的功能,可能获得某些意想不到的效果。

使用Nircmd另一好处就是提高代码的可移植性,当我们需要提高延时的准确性、操作剪切板等,我们可以使用choice、clip等命令,但xp下没有choice,clip等命令。2003,下vista才有,这样为了增加通用性,我们可以舍弃某些被微软抛弃或新提供的命令,而仅附上一文件,众多命令都被封装在一起,可保证批处理脚本的正常执行及兼容性,何乐而不为?

记录一下本人常用的一些命令,描述错误或不当之处还请各位朋友指出:

以下操作在Vista SP2批处理脚本环境下调试全部通过,某些命令如Speak Text不能保证其他系统下也能正常工作. 1、发声

仅响一声

stdbeep

主板峰鸣器发声

beep [频率] [持续时间]

e: nircmd beep 100 2000

2、等待一段时间(可以精确延时,可以不用再Ping了)

wait [时间]

e: start nircmd wait 3000 && nircmd speak

text "等待了3秒钟"

cmdwait [时间] [nircmd命令]

e:nircmd cmdwait 2000 monitor off

3、剪切板操作

clipboard [action] [参数]

action包括参数(set readfile clear writefile

addfile saveimage copyimage saveclp loadclp)

e:

nircmd clipboard clear //清空剪切板

nircmd clipboard set "这是剪切板上的内容"

nircmd clipboard readfile "c:"

4、发送按键sendkey (类似vbs的sendkeys,更多用法请自己去发掘)

sendkey [key] [press|down|up] e:以下命令在批处理中运行,发送ctrl+v将内容粘贴进记事本

start notepad&&nircmd cmdwait 2000 clipboard

set "晚安"&&nircmd sendkey ctrl down

nircmd sendkey v press

nircmd sendkey ctrl up //这一句不可少,释放按键

弊端:操作较繁琐,对长字符串尽量先放进剪切板,再ctrl+v

别外对于特殊按键,可以用虚拟键码表示,具体可以查看相关资料.

如0x8表示BackSpace键,0x6E表示 . 键等

5、朗读文本

speak [类型] [文本或文件名] [速度] [音量]

类型(text xml file)

速度(-10到10)

音量(0到100)

e:nircmd speak file "c:" 2 80

6、弹出信息框

infobox [内容] [标题]

e:nircmd infobox "确定退出" "请注意"

Qbox [内容] [标题] [运行的程序] //如果回答"是"则运行后面的程序

e:nircmd qbox "打开画图软件吗?" "请回答" "mspaint"

QboxTop 与qbox相似,只是信息框顶端显示

Qboxcom

Qboxcom [内容] [标题] [NirCmd命令] 回答"是",则运行后面命令

e:nircmd Qboxcom "Do you Love me ?" "??"

speak text "Me too."

Qboxcomtop与Qboxcom相似,顶端显示

7、等待进程结束

waitprocess [进程名] [命令]

e: nircmd waitprocess infobox "注册表编辑器已关闭了" "注意"

8、关闭进程

closeprocess [进程名]

e: nircmd closeprocess

killprocess [name]

e:N/A

9、操作服务

service [动作] [服务名]

动作包括{start stop pause continue restart

auto manual disabled}

e: nircmd service stop "VMware NAT Service"

e: nircmd service manual "VMware NAT Service" 10、转换图片格式 (支持.bmp, .gif, .png, .jpg, .tiff)

e:nircmd convertimages "c:" .jpg

11、截屏(支持图片格式.bmp, .gif, .png, .jpg)

全屏:

savescreenshot [文件名]

e:nircmd savescreenshot "c:"

活动窗口

savescreenshotwin [文件名]

e:N/A

12、复制文件

shellcopy [源路径] [目标路径] {参数}

参数{yestoall noerrorui silent nosecattr}很容易理解,不解释了

e:nircmd shellcopy "d:" "c:" yestoall

13、删除文件

filldelete [文件名]

e:nircmd filldelete "c:"

14、关闭显示屏

monitor [action]

action包括(off on low)

e:nircmd monitor off

15、设置分辨率

setdisplay [宽] [高] [颜色位]

e:nircmd setdisplay 1024 768 24 16、操作注册表

regedit [键] [键值] 用于打开注册表,并跳转至指定的键

regsetval [类型] [key] [value name] [value]

添加注册表项

其中的类型分为:sz(字符串)、expand_sz(扩展字符串)、dword(32位双字节型)、binarys(二进制)

regdelkey [key] 删除键(如果存在子键,会导致删除失败)

regdelval [key] [value] 删除键值

①、跳转至run键

regedit

"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun"

②、删除run中的值aa

regdelval

"HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun" "aa"

③、run中添加字符串键值aa,字符串内容为bb

nircmd regsetval sz

"HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun" "aa" "bb" 它的功能还远不止这些,感兴趣的朋友可以自己去发觉

其他本人不常用或没用过却很强大的命令,操作方法可以去看附带的帮助文件:

17、操作ini文件

18、连接网络

19、运行三方程序或命令

exec [show/hide] [application + command-line]

exec2 [show/hide] [working folder]

[application + command-line]

execmd [command]

shexec [operation] [filename]

20、windows窗体操作

win [action] [find] [window to find]

[Additional Parameters]

win child [find] [top window to find] [action]

[find] [child window to find] [Additional

Parameters]

21、鼠标操作

sendmouse [right | left | middle] [down | up

| click | dblclick]

sendmouse [move] [x] [y]

sendmouse [wheel] [Wheel Value] 22、系统音量调节与设置

changesysvolume [volume change] {Component}

{Device Index}

changesysvolume2 [left volume change] [right

volume change] {Component} {Device Index}

setvolume [device] [left-volume] [right-volume]

setsysvolume [volume] {Component} {Device

Index}

23、修改文件或文件夹时间

setfiletime [filename or wildcard] [Created

Date] {Modified Date} {Accessed Date}

setfilefoldertime [filename, folder or

wildcard] [Created Date] {Modified Date}

{Accessed Date}

24、清空回收站

emptybin {drive}

e:emptybin f:

25、关闭、重启注销等操作

exitwin [shutdown type] {additional option}

.

.

.

Nircmd官方链接: /utils/

命令

语法描述

remote {copy} [computer] [NirCmd command]

在单一远程计算机上执行NirCmd命令。如果给出{copy}参数,则NirCmd会自动拷贝至远程计算机windows目录下。如果远程计算机windows目录下不存在NirCmd时,必须给出该参数。

remote

例子:

remote copy comp1 exitwin poweroff

remote comp2 infobox "This is a message from NirCmd"

"Hello !"

remote comp3 lockws

multiremote {copy} [computers file] [NirCmd command]

在远程计算机群上执行NirCmd命令。如果给出{copy}参数,则NirCmd会自动拷贝至远程计算机windows目录下。如果远程计算机windows目录下不存在NirCmd时,必须给出该参数。 [computers file]参数,远程计算机列表,计算机名之间用回车+换行间隔开来。

计算机列表文件:

comp1

comp2

winxp1

winxp2

nirsoft

[NirCmd command]中的command命令在[computers file]中所有远程计算机中执行。

multiremote

例子:

 关闭中所有计算机

multiremote "c:" exitwin poweroff

force

锁定中所有计算机

multiremote "c:" lockws

拷贝NirCmd至中所有计算机,然后关闭显示器

multiremote copy "c:" monitor off

拷贝NirCmd至中所有计算机,然后启动Winupdateslists工具并保存windows更新信息

multiremote copy "c:" exec hide

c: /shtml

"c:tempwul_~$ername$.html"

cmdwait [Number of Milliseconds] [NirCmd Command]

cmdwait

延时xx毫秒后,执行NirCmd命令。

例子:

cmdwait 1000 monitor off

paramsfile [Parameters File] [Delimiters] [Quote Character]

[NirCmd Command]

该强大命令可以通过加载某一文本文件中的参数来多次执行NirCmd命令,该文本文件必须用逗号,tab制表符,分号或者其他指定的字符([Delimiters])来间隔开来。

这个例子...说明你有一个包含用户名和密码的文本文件,用户名和密码用逗号间隔: user01, 123456

user02, abcfg

user03, 5fr23

user04, 33333

paramsfile

下面用NirCmd命令创建4个具有指定用户名和密码的用户(用Windows

2000/XP操作系统提供的'net user'命令):

paramsfile "c:" "," "" execmd net

user ~$fparam.1$ ~$fparam.2$ /add

~$fparam.1$ 特化每行第一个入口-用户名;

~$fparam.2$ 特化每行第二个入口-用户密码。

例子:

paramsfile "c:" "" "" execmd md ~$fparam.1$

paramsfile "c:" "," "~q" shortcut

~$fparam.1$ "~$p$" ~$fparam.2$

infobox [message text] [title]

infobox

显示信息提示框至屏幕

例子:

infobox "This is a message box !" "message"

qbox [message text] [title] [program to run]

显示问题对话框至屏幕,如果用户点击"是"则运行一个指定好的程序

qbox

例子:

qbox "Do you want to run the calculator ?" "question"

""

qboxtop [message text] [title] [program to run]

qboxtop

类似于qbox命令,但是信息提示框以最前端显示。

qboxcom [message text] [title] [NirCmd Command]

显示问题对话框至屏幕,如果用户点击"是",执行NirCmd其他命令

qboxcom

例子:

qboxcom "Do you want to lock your workstation ?" "question"

lockws

qboxcom "Do you want to turn off the monitor ?" "monitor"

monitor off

qboxcomtop [message text] [title] [NirCmd Command]

qboxcomtop

类似于qboxcom命令,但是信息提示框以最前端显示。

script [Script File]

该命令允许你执行脚本文件中的所有参数值。

例子:

script "c:"

script

脚本文件样本:

infobox "Hello !" "This is the first message"

infobox "Hello !" "This is the second message"

infobox "Hello !" "This is the third message"

regedit [key] [value name]

打开注册表编辑器特定键/项值

regedit

例子:

regedit "HKLMSoftwareMicrosoftWindowsCurrentVersion"

"CommonFilesDir"

regedit "HKEY_CURRENT_USERControl PanelDesktop" "Wallpaper"

regsetval [type] [key] [value name] [value]

写入注册表值。[type]可填"sz" 或 "expand_sz"(字符串) , "dword"

(32位数), 或 "binary" (二进制数据). [key]不给出时,它会自动创建

regsetval

例子:

regsetval dword "HKEY_CURRENT_USERSoftwareTest" "Value1"

"0xaabbccdd"

regsetval dword "HKCUSoftwareTest" "Value2" "10561"

regsetval sz "HKCUSoftwareTest" "Value3" "string value"

regsetval binary "HKLMSoftwareTest" "Value4" "6a cb ab dd 80

86 95"

regdelval [key] [value]

regdelval

删除注册表值

例子:

regdelval "HKEY_CURRENT_USERSoftwareTest" "Value1"

regdelkey [key]

regdelkey

删除整个注册表键。如果给出多个键和子键时会导致失败

例子:

regdelkey "HKEY_CURRENT_USERSoftwareTest"

inisetval [INI filename] [section] [key] [value]

inisetval

写入ini文件值。如果该文件不存在,会自动创建它。

例子:

inisetval "c:" "section1" "TestValue" "1"

inidelval [INI filename] [section] [key]

inidelval

删除ini文件中的一对键值。

例子:

inidelval "c:" "section1" "TestValue"

inidelval [INI filename] [section]

inidelsec

删除整个ini文件,包括其内的所有值项。

例子:

inidelsec "c:" "section1"

regsvr [reg or unreg] [filename or wildcard] {log file}

注册或反注册DLL/OCX文件。

[reg or unreg],"reg" 表示注册文件,而"unreg"表示反注册文件。

[filename or wildcard],表示你需要注册或者反注册的单个或多个文件,多个文件可用通配符。

{log file}为可选项,用于记录注册操作过程

例子:

regsvr reg "f:winntsystem32fv*.ocx" "c:"

regsvr unreg "f:winntsystem32ab*.dll"

rasdial [Entry Name] {Phonebook File} {User Name} {Password}

{Domain}

拨号登陆RAS(VPN或电话线),不显示用户界面。除[Entry Name]外,其他都为可选项。如果未指定可选项的参数值(""),则表示使用默认值。

regsvr

rasdial

例子:

rasdial "My Internet" rasdial "VPN1" "" "user1" "abc1234" "domain1"

inetdial [Entry Name]

拨号登陆RAS(VPN或电话线),在拨号过程中显示诊断信息框。该命令仅支持IE版本在4.0以上。在Windows98操作系统中不能使用。

inetdial

例子:

inetdial "VPN1"

rasdialdlg [Entry Name] {Phonebook File} {Phone Number or IP

Address}

显示RAS登陆界面。{Phonebook File}和{Phone Number}参数为可选项。如果未指定{Phonebook File}参数值或指定为空字符串时,则使用默认电话簿。

该命令仅支持Windows NT, Windows 2000, 和Windows XP操作系统。不支持Windows 98/ME系统。

例子:

rasdialdlg "Internet1" "" "9876543"

rasdialdlg "VPN1"

rashangup {Entry Name}

挂断RAS连接。你可以用该命令断开当前网络或结束挂起rasdial。如果未指定{Entry Name}参数,则所有连接都会断开。

rasdialdlg

rashangup

例子:

rashangup "VPN1"

rashangup

setdialuplogon [Entry Name] [User Name] {Password} {Domain}

{Phonebook File}

修改用户名,密码和所在域。

参数:

[Entry Name]: 拨号登陆名称

[User Name]: 拨号登陆用户名

{Password}: 拨号登陆密码

{Domain}: 拨号登陆所在域

{Phonebook File}: 包含指定参数的电话簿,否则使用默认电话簿

setdialuplogon

例子:

setdialuplogon "VPN1" "user1" "asder443" "domain1"

setdialuplogon "Internet1" "nirs3" "q5r4df7yh5"

exitwin [shutdown type] {additional option}

exitwin

终止当前windows会话。[shutdown type]参数可选,如下:

logoff: 结束所有正在运行的进程。注销当前用户,显示重新登陆另一用户系统界面

reboot:关闭整个系统,再重新启动系统

poweroff: 关闭整个系统,再关闭电源(仅用于支持高级电源管理的电脑)

shutdown: 直接关闭整个系统,不重启,不关闭电源

也可以使用以下额外辅助选项:

force: 强制立即关闭所有程序。会导致正在运行的程序数据丢失。一般用于极端情况下。

forceifhung: 强制关闭未响应程序。仅在Windows 2000/XP操作系统可用。

例子:

exitwin reboot

exitwin poweroff force

exitwin logoff forceifhung

initshutdown {message} {timeout value in seconds} {force}

{reboot}

系统关闭初始化。有点类似exitwin命令,但是另具有其他特色。该命令在Windows 95/98/ME操作系统下不支持。所有参数为可选。如果未指定任何参数,则系统采取静默关闭。

参数:

initshutdown

{message}: 系统关闭之前提示信息

{timeout value in seconds}: 系统关闭等待时间

{force}: 强制关闭所有程序,不保存当前程序数据

{reboot}: 系统关闭后重新启动

例子:

initshutdown "shutting down the system within 60 seconds" 60

reboot

initshutdown "" 0 force

abortshutdown

abortshutdown

放弃系统关闭(针对initshutdown命令后而言)。不加任何参数。

例子:

abortshutdown

lockws

lockws

锁定工作站。必须通过键入密码来解锁。该命令仅支持Windows 2000和Windows XP操作系统。

monitor [action]

改变显示器显示状态。[action]参数包含以下可选项:

off: 关闭显示器

on: 打开显示器

low: 设置显示器为省电模式

monitor

该命令仅在支持该特色的系统中使用(译者注:一般支持高级电源管理的都可行)。

例子:

monitor off

monitor on

screensaver

screensaver

启动默认屏幕保护

standby {force}

关闭电脑并使之处于"待机"模式。如果指定{force}参数,则系统强行进入待机模式,一般不推荐使用该参数。该命令仅运行在支持待机模式系统中。

standby

例子:

standby force

standby

hibernate {force}

关闭电脑并使之处于"休眠"模式。如果指定{force}参数,则系统强行进入休眠模式,一般不推荐使用该参数。该命令仅运行在支持休眠模式系统中。

hibernate

例子:

hibernate force

hibernate

shortcut [filename] [folder] [shortcut title] {arguments}

{icon file} {icon resource number} {ShowCmd} {Start In Folder}

{Hot Key}

创建文件的快捷方式

参数:

[filename]: 创建快捷方式的文件名

[folder]: 指定目标文件夹,并创建该有效文件夹的快捷方式,置于该文件夹下。可以使用特定变量来表示系统文件夹,如:~$p$ ("桌面"文件夹),

~$ms$ ("所有程序"文件夹), 等....

shortcut

[shortcut title]: 快捷方式名称

{arguments}: 可选参数—用于执行文件名的额外辅助参数

{icon file}: 可选参数—用指定图标代替默认快捷方式图标显示

{icon resource number}: 可选参数—图标文件索引号(译者注:集成在中,索引号获取不同图标)

{ShowCmd}: 可选参数—用于需要最大化或最小化显示程序窗口。可以指定为最大化或最小化显示。

{Start In Folder}:可选参数—指定"开始"文件夹。如果未指定则自动以"所有程序"文件夹下文件名来填充。

{Hot Key}:可选参数—指定某快捷方式热键。如:Alt+Ctrl+A,

Alt+Shift+F8, Alt+Ctrl+Shift+Y

例子:

shortcut "f:" "~$p$"

"Windows Calculator" 1111111

shortcut "f:"

"~$ms$Calculators" "Windows Calculator"

shortcut "f:Program "

"c:tempMyShortcuts" "Kazaa"

shortcut "f:Program Files" "c:tempMyShortcuts" "Program

Files Folder" "" "f:" 45

shortcut "f:Program Files" "c:tempMyShortcuts" "Program

Files Folder" "" "" "" "max"

cmdshortcut [folder] [shortcut title] [command]

创建NirCmd命令快捷方式。当你双击激活该快捷方式时,[command]中的包含的命令会被执行。

cmdshortcut

例如:

cmdshortcut "~$p$" "Open CDROM" cdrom open k:

cmdshortcut "c:temp" "Turn Monitor Off" monitor off

cmdshortcutkey [folder] [shortcut title] [hot key] [command]

类似cmdshortcut命令。允许用指定的热键来激活命令。

cmdshortcutkey

例子:

cmdshortcutkey "~$p$" "Open CDROM" "Ctrl+Shift+K"

cdrom open k:

cmdshortcutkey "c:temp" "Turn Monitor Off" "Ctrl+Shift+M"

monitor off

urlshortcut [URL] [Folder] [Shortcut Title]

创建URL地址的快捷方式(类似IE浏览器中收藏夹的快捷方式)。[Folder]参数指定目标文件夹,快捷方式置于该文件夹下。假如,你想创建某URL地址的快捷方式并置于默认收藏夹内,用~$tes$。

urlshortcut

例子:

urlshortcut "" "~$tes$"

"NirSoft Web Site"

urlshortcut ""

"~$tes$Search Engines" "Google"

urlshortcut "" "c:temp" "Yahoo"

exec [show/hide] [application + command-line]

启动应用程序,并为该程序指定应用参数。[show/hide]参数指定程序运行是否可见。如果指定为'hide'状态,则应用程序不可见。

例子:

exec show "f:"

exec hide "c:" /savelangfile

exec2 [show/hide] [working folder] [application + command-line]

exec2

类似于exec命令,不同在于增加[working folder]参数,指定应用程序所在文件夹。

例子:

exec2 show "f:winntsystem32" "f:"

exec2 hide c:temp "c:" /savelangfile

execmd [command]

执行命令提示符下(Window 控制台)某一命令,不显示任何信息至屏幕。

execmd

exec

例子:

execmd del "~$p$"

execmd mkdir f:tempdesktop1

execmd copy "~$p$*.lnk" f:tempdesktop

shexec [operation] [filename]

根据文件后缀名用相应程序打开文件。如;.doc后缀名文件将会用ms-word打开;.html将用默认浏览器打开。如果你指定了有效的网站地址,浏览器将会链接至该站点。[operation] 参数用"open"或"print"。

例子:

shexec "open" "c:my "

shexec "print" "d:"

shexec "open" ""

setfiletime [filename or wildcard] [Created Date] {Modified

Date} {Accessed Date}

shexec

setfiletime

改变单个或多个文件的创建/修改/访问时间等属性。第一个参数表示一个或者多个文件(多个文件可用通配符字符串);日期参数必须按如下格式: "dd-mm-yyyy hh:nn:ss" 给出。如果日期参数省略或者用空字符串(""),则默认取当前系统日期和时间。

例子:

setfiletime "c:temp*.exe" "15-05-2004 11:22:12" "22-01-2005

21:22:55"

setfiletime "c:" "24-06-2003 17:57:11" "" "22-11-2005 10:21:56"

setfiletime "c:" now now

setfilefoldertime [filename, folder or wildcard] [Created

Date] {Modified Date} {Accessed Date}

改变单个或多个文件夹的创建/修改/访问时间等属性。非常类似setfiletime命令。不同在于setfilefoldertime仅支持Windows

2000/Xp操作系统。

例子:

setfilefoldertime "c:tempmyfolder" "10-01-2003 11:22:12"

"12-11-2002 02:34:11"

setfilefoldertime "c:tempmyfolder" now now

emptybin {drive}

清空回收站。{drive}参数指定你想清除的驱动器。如果省略该参数,则清空所有驱动器下的回收站内容。

setfilefoldertime

emptybin

例子:

emptybin f:

emptybin

setdisplay [width] [height] [color bits] {refresh rate} {-updatereg} {-allusers}

更改显示设置。[width]和[height]参数表示屏幕像素值。[color

bits]参数表示屏幕颜色位(8位,16位,24位等)。{refresh rate}为可选参数表示显示器刷新频率。如果你指定了{-updatereg}参数,则修改会保存在注册表中。如果你还指定了{-allusers}参数,则表示应用于所有用户。

setdisplay

例子:

setdisplay 800 600 24 -updatereg

setdisplay 1024 768 24 90

setdisplay 1024 768 8

killprocess [process]

结束指定进程。[process]参数,可以指定进程文件所在完整路径(e.g:

'C:Program FilesInternet ')或只指定进程文件名(e.g.: )。也可以指定进程PID值,需要在PID前加上'/'前缀。

例子:

killprocess

killprocess "c:"

killprocess /1830

killprocess

closeprocess [process]

通过窗口"关闭"选项来结束指定进程。与killprocess命令相反,closeprocess 命令不会强制立即关闭进程,而是通过发送WM_CLOSE信息函数来关闭指定进程。然而,需要注意必须存在该进程界面才有效。(译者注:它工作机理所决定)

closeprocess

[process]参数,可以指定进程文件所在完整路径(e.g: 'C:Program

FilesInternet ')或只指定进程文件名(e.g.:

)。也可以指定进程PID值,需要在PID前加上'/'前缀。

例子:

closeprocess

closeprocess "c:"

closeprocess /1830

waitprocess [process]

指定进程处于等待状态,直到关闭(译者注:把进程从内存地址中挂起或者理解为释放内存分配地址)

[process]参数,可以指定进程文件所在完整路径(e.g: 'C:Program

FilesInternet ')或只指定进程文件名(e.g.:

)。也可以指定进程PID值,需要在PID前加上'/'前缀。

例子:

waitprocess

waitprocess "c:"

waitprocess /1830

setprocesspriority [process] [priority]

设置指定程序的运行优先级

[priority]参数可用以下值: normal, low, belownormal,

abovenormal, high, realtime。

[process]参数,可以指定进程文件所在完整路径(e.g: 'C:Program

setprocesspriority

FilesInternet ')或只指定进程文件名(e.g.:

)。也可以指定进程PID值,需要在PID前加上'/'前缀。

例子:

setprocesspriority high

setprocesspriority "c:" low

setprocesspriority /1830 abovenormal

memdump [process] [dump file] [bytes per line] {bytes to read}

{start address} {nohex} {noascii}

memdump

根据相应的参数读取进程在内存中的信息,并保存到文本文件

waitprocess

参数:

[process]: 需要转储内存信息的进程名。你可以指定进程完整路径或其PID值,PID值加前缀'/'(e.g.: /520)

[dump file]:保存指定进程的内存转储文件

[bytes per line]: 转储内存文件中每行允许显示的字节数

{bytes to read}: 读取字节数长度

{start address}: 开始转储的内存地址

{nohex}: 可选项,如果指定该参数,则内存数据不再以16进制格式保存

{noascii}: 可选项,如果指定该参数,则内存数据不再以ASCII码格式保存

例子:

memdump "c:" "16" "0x10000"

"0x400000"

memdump "c:" "32" "0x30000" "0x400000"

nohex

memdump /525 "c:" "16" "0x100000" "0x120000"

noascii

service {Computer} [action] [service name]

更改服务或驱动启动状态

参数:

{Computer}:可选项。指定为远程计算机,否则为本地计算机

[action]: 操作选项,包含以下可用参数:

o start: 启动指定服务或驱动

o stop: 停止指定服务或驱动

o pause: 暂停指定服务或驱动

o continue:恢复指定服务或驱动

o restart: 重启指定服务或驱动

o auto: 更改指定服务或驱动的启动类型为"自动"

o manual: 更改指定服务或驱动的启动类型为"手动"

o disabled: 更改指定服务或驱动的启动类型为"已禁用"

o boot: (仅针对驱动而言) 更改指定驱动的启动类型为"开机自启动"

o system: (仅针对驱动而言) 更改指定驱动的启动类型为"系统启动"

o [service name]: 服务或者驱动名称

service

例子:

service start schedule

service remote stop schedule

service restart w3svc

win [action] [find] [window to find] [Additional Parameters]

win

针对windows子窗口:

win child [find] [top window to find] [action] [find] [child

window to find] [Additional Parameters]

该命令允许你关闭,隐藏,显示,最大化和最小化指定窗口

参数:

 [action]:对指定窗口进行操作:

o child: 允许对指定的顶层窗口进行操作

o close: 关闭指定窗口

o hide: 隐藏指定窗口

o show: 显示指定窗口 (通过使用隐藏之后)

o hideshow: 隐藏指定窗口,过后自动显示(启动重绘窗口作用)

o activate: 把指定窗口前端显示

o max: 最大化指定窗口

o min: 最小化指定窗口

o normal: 还原指定窗口为常规状态,用于最大或最小化之后

o trans: 设置指定窗口透明度,[Additional

Parameters]值域为0~255,0表示完全透明;255表示不透明。

o setsize: 设置指定窗口显示大小。[Additional

Parameters]值包含以下参数—x,y,width,height

o move: 移动/调整窗口大小。[Additional Parameters]用于指定移动/改变的— x, y, width, height像素值

o center: 指定窗口居中显示

o settopmost:设置指定窗口最前端显示。如果[Additional Parameters] 为1,表示最前端显示;为0,表示取消最前端显示

o redraw:重绘指定窗口

o settext: 修改指定窗口的主题/标题显示内容

o focus: 设置指定窗口的默认"聚焦点"

o disable:禁用指定窗口

o enable: 启用指定窗口

o +style: 增加指定窗口风格,[Additional

Parameters]指定增加风格

o -style: 移除指定窗口风格,[Additional

Parameters]指定移除风格

o +exstyle: 增加指定窗口扩展风格,[Additional

Parameters]指定增加扩展风格

o -exstyle:移除指定窗口扩展风格,[Additional

Parameters]指定移除扩展风格

o postmsg: 向指定窗口邮寄信息。[Additional

Parameters] 包含3个可选参数: Msg, wParam,

lParam

o sendmsg: 向指定窗口发送信息。[Additional

Parameters] 包含3个可选参数: Msg, wParam,

lParam

o dlgclick: 发送对话框的单击按钮命令。[Additional

Parameters]需要指定按钮ID,或预先定义的yes, no,

ok, cancel, retry, ignore, close, help等按钮

ID。

o dlgsettext: 设置对话框内容。[Additional

Parameters] 需要指定ID

o dlgsetfocus: 设置对话框上的默认"聚焦点",需要指定ID。

[find]: 寻找窗口算法

o handle: 以[window to find]参数中句柄寻找

o id: 以子窗口ID号寻找。仅对子窗口寻找有用

o class: 以[window to find]参数中类名寻找

o title: 以[window to find]参数中标题寻找

o stitle: 以[window to find]参数中子标题寻找

o ititle: 以窗口标题字符串寻找

o alltop: 所有顶端窗口

o alltopnodesktop: 所有顶端窗口,除桌面和托盘。

o active: 当前活动窗口

o foreground: 前台窗口

o desktop: 桌面窗口

[window to find]: 根据当前参数的句柄,类名,窗口标题等获取指定窗口。

例子:

win close title "calculator"

win hide stitle "calculat"

win hide ititle "culat"

win show class "SciCalc"

win activate title "my computer"

win max handle 0x00009c01

win redraw alltop

win trans ititle "internet explorer" 192

win setsize class "IEFrame" 50 50 400 300

win settopmost class "SciCalc" 1

win child class "Shell_TrayWnd" hide class "button"

win child class "Shell_TrayWnd" show class "button"

win child title "calculator" hide id 128

win -style title "my computer" 0x00C00000

win child title "my computer" +exstyle all 0x00400000

win sendmsg title "calculator" 0x10 0 0

win dlgclick class "#32770" cancel

cdrom [action] {drive:}

该命令用于打开和关闭CD-ROM驱动器。[action]参数,可用'open' 或

'close'。如果未指定{drive:}参数,默认所有CD-ROM。

cdrom

例子:

cdrom open

cdrom close

cdrom open J:

cdrom close R:

clipboard [Action] [Parameter]

clipboard

允许用剪切板存储值或清空

[Action]包含以下操作:

set - 储存指定文本文件至剪切板

readfile - 储存指定文本内容至剪切板

clear - 清空剪切板

writefile - 从剪切板中读取指定内容至文件(仅支持文本文件)

addfile - 从剪切板中读取指定内容追加至文件(仅支持文本文件)

saveimage - 剪切板图像保存至文件

copyimage - 拷贝图像文件至剪切板

拷贝和保存图像操作,支持以下几种类型:.bmp,.gif,.jpg,.tiff—需要安装图形设备接口(在XP/2003/Vista操作系统中,GDI+被集成在操作系统内)

例子:

clipboard set "123456"

clipboard set ~$p$

clipboard set ~$_menu$

clipboard readfile "c:"

clipboard addfile "c:"

clipboard clear

clipboard saveimage "c:"

clipboard saveimage "c:"

clipboard copyimage "c:"

gac [Action] [Parameter]

gac

安装编译器至全局程序集缓存中。

例子:

gac install "C:"

beep [Frequency] [Duration]

响铃。[Frequency]参数指定频率,单位赫兹。[Duration]参数声音持续指定毫秒数。在Windows 95/98/ME操作系统,不支持以上参数值,仅支持标准Windows响铃。

beep

例子:

beep 500 2000

stdbeep

stdbeep

播放标准Windows响铃

例子:

stdbeep

setvolume [device] [left-volume] [right-volume]

设置声音设备音量水平。[device]参数表示设备类型。大多数情况下用'0'值,在Windows Vista中, 0表示默认播放设备,1表示默认记录设备。[left-volume]和[right-volume]表示左右声道音量水平值,值域为0(静音)和65535(最高音量)之间。

例子:

setvolume 0 0 0

setvolume 0 32768 32768

setvolume 0 0xffff 0

setsysvolume [volume] {Component} {Device Index}

设置系统音量。更改该值会影响控制面板中设置的音量大小。[volume]大小范围:0~65535之间。{Component}为可选项,与如下声音组件有关:音量控制,波形,软件合成器,CD唱机,麦克风,电话线,辅件,线路输入,听筒,波形输入,默认为 'master'(主音量控制)。在Windows Vista中,组件名称必须与音量设备名相同(Control Panel ->

Sound)。如果设备名含有空格,必须用引号括住。{Device Index}为可选项,特定声音设备索引。在你有多个声卡设备时使用。如果没有指定该参数,则用默认声卡设备。

例子:

setsysvolume 0x8000

setsysvolume 0

setsysvolume 25000 waveout

setsysvolume 25000 master 1

Vista Examples:

setsysvolume 0x8000

setsysvolume 0 "front mic"

setsysvolume 25000 speakers

setsysvolume 25000 "line in"

setsysvolume2 [left volume] [right volume] {Component} {Device

Index}

与setsysvolume类似,但不影响全局音量,只改变右声道。

例子:

setsysvolume2 10000 20000

setsysvolume2 30000 0

setsysvolume2 25000 15000 waveout

setsysvolume2 30000 0 master 1

changesysvolume [volume change] {Component} {Device Index}

增大或降低系统音量。[volume change]参数指定增大或降低的音量单位数(负值表降低,正值表增大)。{Component}为可选项,与如下声音组件有关:音量控制,波形,软件合成器,CD唱机,麦克风,电话线,辅件,线路输入,听筒,波形输入,默认为 'master'(主音量控制)。在Windows Vista中,组件名称必须与音量设备名相同(Control Panel

-> Sound)。如果设备名含有空格,必须用引号括住。{Device Index}setvolume

setsysvolume

setsysvolume2

changesysvolume

为可选项,特定声音设备索引。在你有多个声卡设备时使用。如果没有指定该参数,则用默认声卡设备。

例子:

changesysvolume 5000

changesysvolume -3000

changesysvolume 0x1000 waveout

changesysvolume 0x1000 master 1

Vista Examples:

changesysvolume 5000

changesysvolume -3000

changesysvolume 0x1000 "line in"

changesysvolume 0x1000 "speakers" 1

changesysvolume2 [left volume change] [right volume change]

{Component} {Device Index}

与setsysvolume类似,但不影响全局音量,只改变左声道。

changesysvolume2

例子:

changesysvolume2 1000 -1000

changesysvolume2 -3000 0

changesysvolume2 0 -5000 waveout

changesysvolume2 -3000 0 master 1

mutesysvolume [action] {Component} {Device Index}

静音/取消静音。

[action]参数,1表示静音,0表示取消静音,2表示静音与正常状态切换开关。{Component}为可选项,与如下声音组件有关:音量控制,波形,软件合成器,CD唱机,麦克风,电话线,辅件,线路输入,听筒,波形输入,默认为 'master'(主音量控制)。在Windows Vista中,组件名称必须与音量设备名相同(Control Panel -> Sound)。如果设备名含有空格,必须用引号括住。{Device Index}为可选项,特定声音设备索引。在你有多个声卡设备时使用。如果没有指定该参数,则用默认声卡设备。

例子:

mutesysvolume 1

mutesysvolume 0

mutesysvolume 2 waveout

mutesysvolume 1 master 1

Vista Examples:

mutesysvolume 1

mutesysvolume 0

mutesysvolume 2 "rear mic"

mutesysvolume 1 speakers 1

wait [milliseconds]

mutesysvolume

wait

等待指定毫秒数。

例子:

wait 1000

wait 500

shellrefresh

shellrefresh

Explorer刷新和初始化。用于你更改有关文件类型的注册值(如,更改.gif扩展名)之后,并希望修改后立即生效。

sysrefresh {Refresh Type}

一般系统刷新和初始化。用于你更改过注册表中系统设置之后(e.g: 更改桌面图标大小,环境变量等)。{Refresh Type}为可选项。可执行如下特定操作: "environment" - 刷新环境变量, "policy" - 刷新组策略设置, "intl" 刷新本地设置。

sysrefresh

例子:

sysrefresh

sysrefresh environment

sysrefresh policy

setcursor [X] [Y]

setcursor

设置鼠标指针位置。[X]和[Y]参数指定该位置。

例子:

setcursor 100 50

setcursorwin [X] [Y]

设置鼠标指针位置。与活动窗口的左上角为起始,[X]和[Y]参数指定该位置

例子:

setcursor 100 50

movecursor [X] [Y]

setcursorwin

movecursor

鼠标指针移动。[X]和[Y]参数定位移动指定像素值。

例子:

movecursor 10 10

dlg [Process Name] [Window Title] [Action] [Parameters]

允许与标准对话框和信息提示框交互操作。当一对话框打开时,你可以用点击确定/取消/是/否等按钮,或者允许填入文本至文本框中。例如,

dlg

下面命令解释为在对话框中'运行'栏填入''进程,然后,点击确定按钮。'12298'是对话框中的文本栏的控制ID,你可以用Spy++或WinExplorer工具来获取该值。

dlg "" "run" settext 12298 ""

dlg "" "run" click ok

下面命令将选择'是'回答Explorer进程对话框的所有问题:

dlg "" "" click yes

下面命令将选择'取消'回答所有进程对话框的所有问题:

dlg "" "" click cancel

参数描述:

[Process Name]: 创建指定进程窗口。你可以指定进程名或完整路径名。如果保留空字符串(""),表示所有进程。

[Window Title]: 指定操作的窗口标题。如果保留空字符串(""),表示任何窗口,不管是否存在窗口标题。

[Action]: 指定如下操作选项:

o click:单击指定按钮。你可以预定义按钮标题(仅对标准对话框窗口而言):是,否,确定,取消,重试,忽略,关闭,帮助。也可以指定控制ID的数值。

o settext: 设置指定显示的文本控制。第一个参数指定控制ID,第二个参数指定文本内容。

dlgany [Process Name] [Window Title] [Action] [Parameters]

dlgany

与dlg命令类似,即使非标准对话框窗口也有效。

returnval [Return Value]

returnval

允许你给NirCmd指定返回值。该返回值可被外部程序来使用。

比如,如果用户选择'是',则NirCmd返回值0x30。

qboxcom "Do you want to continue ?" "question" returnval 0x30

sendkey [Key] [press | down | up]

发送按键至系统。让操作系统模仿用户按键操作。

[Key]参数,指定按键的虚拟按键代码(如,0x2e表示del键),或其他预定义键:a -z和0-9 (数字键), F1 - F24 (FX键), shift, ctrl,

alt, enter, esc。

第二个参数指定按键行为:'press', 'down', 或 'up'。考虑键down行为属性时,同时需要考虑键up时的行为属性。

如下脚本例子中,系统模仿用户执行Shift+Ctrl+Esc按键操作(任务管理器出现):

sendkey shift down

sendkey ctrl down

sendkey esc down

sendkey shift up

sendkey ctrl up

sendkey

sendkey esc up

更多例子:

sendkey a press

sendkey f10 press

sendkey enter press

sendkey 0x2e press

sendmouse [right | left | middle] [down | up | click |

dblclick]

sendmouse [move] [x] [y]

sendmouse [wheel] [Wheel Value]

发送系统指定鼠标事件。让操作系统模仿用户鼠标操作。

sendmouse命令例子:

 发送点击右键(对大多数应用程序而言,上下文菜单已经处于打开状态):

sendmouse right click

发送右键双击操作:

sendmouse left dblclick

按住鼠标左键按钮不放,移动鼠标指针左20像素,然后下30像素,释放按钮:

sendmouse left down

sendmouse move -30 20

sendmouse left up

在标准滚轮鼠标上,滑动鼠标滚轮10个单位。(对标准滚轮鼠标而言,每个单位代表120):

sendmouse wheel 1200

sendmouse

convertimage [source filename] [destionation filename]

转换单个图像文件格式。支持如下格式:.bmp, .gif, .png, .jpg, .tiff

该命令仅工作在Windows XP/2003/Vista操作系统下 (GDI+需要安装)

例子:

convertimage "c:" "c:"

convertimage "c:" "c:"

convertimages [source wildcard] [extension]

转换多个图像文件。支持如下格式:.bmp, .gif, .png, .jpg, .tiff

该命令仅工作在Windows XP/2003/Vista操作系统下 (GDI+需要安装)

例子:

convertimages "c:tempa*.gif" .png

convertimages "c:temp*.jpg" .gif

convertimage

convertimages

savescreenshot [filename]

截取当前屏幕,并保存图像文件。支持如下格式:.bmp, .gif, .png, .jpg, .tiff

该命令仅工作在Windows XP/2003/Vista操作系统下 (GDI+需要安装)

例子:

savescreenshot "c:"

savescreenshotwin [filename]

截取当前活动窗口,并保存图像文件。支持如下格式:.bmp, .gif, .png, .jpg, .tiff

该命令仅工作在Windows XP/2003/Vista操作系统下 (GDI+需要安装)

例子:

savescreenshotwin "c:"

shellcopy [source file or wildcard] [destination] {Flags}

从一文件夹下拷贝一个或多个文件至另一文件夹中。并显示进展情况对话框,非常类似资源浏览器下文件复制操作。

savescreenshot

savescreenshotwin

可以配合使用以下一个或多个标志值:

shellcopy

yestoall: 自动用'是'应答所有问题

noerrorui: 不显示错误信息提示界面

silent: 静默模式—不显示任何进展信息提示

nosecattr: 不拷贝带有安全属性文件

例子:

shellcopy "c:temp*.*" "d:temp"

shellcopy "c:temp*.*" "d:temp" yestoall noerrorui

filldelete [source file or wildcard]

填充指定文件或多个文件为单字节文件,然后删除之。这意味着这种文件删除方式导致不可恢复性。

例子:

filldelete "c:temp*.*"

filldelete "c:"

filldelete

②“sendkey 0x25 press”是sendkey命令的应用,0x25是左键对应的虚拟键码,0x26、0x27和0x28分别是上、右和下。

附虚拟键码表:

/manual/low_level_vk_

注:对于命令中的[Key],a-z、0-9、F1-F12、ctrl、shift、alt、esc等都直接写即可,像上下左右、回车、Delete之类的特殊按键才需要使用虚拟键码。

// Virtual Keys, Standard Set

#define VK_LBUTTON 0x01

#define VK_RBUTTON 0x02

#define VK_CANCEL 0x03

#define VK_MBUTTON 0x04 /* NOT

contiguous with L & RBUTTON */

#define VK_BACK 0x08

#define VK_TAB 0x09

#define VK_CLEAR 0x0C

#define VK_RETURN 0x0D

#define VK_SHIFT 0x10

#define VK_CONTROL 0x11

#define VK_MENU 0x12

#define VK_PAUSE 0x13

#define VK_CAPITAL 0x14 #define VK_KANA 0x15

#define VK_HANGEUL 0x15 /* old name -

should be here for compatibility */

#define VK_HANGUL 0x15

#define VK_JUNJA 0x17

#define VK_FINAL 0x18

#define VK_HANJA 0x19

#define VK_KANJI 0x19

#define VK_ESCAPE 0x1B

#define VK_CONVERT 0x1C

#define VK_NONCONVERT 0x1D

#define VK_ACCEPT 0x1E

#define VK_MODECHANGE 0x1F

#define VK_SPACE 0x20

#define VK_PRIOR 0x21

#define VK_NEXT 0x22

#define VK_END 0x23

#define VK_HOME 0x24

#define VK_LEFT 0x25

#define VK_UP 0x26

#define VK_RIGHT 0x27

#define VK_DOWN 0x28

#define VK_Select 0x29

#define VK_PRINT 0x2A

#define VK_EXECUTE 0x2B

#define VK_SNAPSHOT 0x2C

#define VK_Insert 0x2D #define VK_Delete 0x2E

#define VK_HELP 0x2F

/* VK_0 thru VK_9 are the same as ASCII '0'

thru '9' (0x30 - 0x39) */

/* VK_A thru VK_Z are the same as ASCII 'A'

thru 'Z' (0x41 - 0x5A) */

#define VK_LWIN 0x5B

#define VK_RWIN 0x5C

#define VK_APPS 0x5D

#define VK_NUMPAD0 0x60

#define VK_NUMPAD1 0x61

#define VK_NUMPAD2 0x62

#define VK_NUMPAD3 0x63

#define VK_NUMPAD4 0x64

#define VK_NUMPAD5 0x65

#define VK_NUMPAD6 0x66

#define VK_NUMPAD7 0x67

#define VK_NUMPAD8 0x68

#define VK_NUMPAD9 0x69

#define VK_MULTIPLY 0x6A

#define VK_ADD 0x6B

#define VK_SEPARATOR 0x6C

#define VK_SUBTRACT 0x6D

#define VK_DECIMAL 0x6E

#define VK_DIVIDE 0x6F

#define VK_F1 0x70

#define VK_F2 0x71

#define VK_F3 0x72 #define VK_F4 0x73

#define VK_F5 0x74

#define VK_F6 0x75

#define VK_F7 0x76

#define VK_F8 0x77

#define VK_F9 0x78

#define VK_F10 0x79

#define VK_F11 0x7A

#define VK_F12 0x7B

#define VK_F13 0x7C

#define VK_F14 0x7D

#define VK_F15 0x7E

#define VK_F16 0x7F

#define VK_F17 0x80

#define VK_F18 0x81

#define VK_F19 0x82

#define VK_F20 0x83

#define VK_F21 0x84

#define VK_F22 0x85

#define VK_F23 0x86

#define VK_F24 0x87

#define VK_NUMLOCK 0x90

#define VK_SCROLL 0x91