介绍

今天介绍一下nircmd这款工具,官网网址

NirCmd是一套免费的命令行工具,提供许多控制Windows的参数。

可以让你运用命令行的方式,无需用户界面来执行一些常用的动作,例如截图, 写入、删除注册表项、值, 将值写入INI文件,拨号连接到VPN网络,改变文件的创建/修改日期,改变显示设置,关闭显示器,以及更多…。

这款软件大小只有100kb+,是一个独立的可执行程序,不需要任何的安装过程或者额外的dll文件支持。

 

安装

只需要把下载后解压得到的nircmd.exe文件复制到任何指定的文件夹,并且根据你的需要添加你需要的命令选项运行即可。

推荐复制NirCmd.exe到Windows目录,或者复制到任何系统中path环境变量中所列出的路径下,这样你就不需要在每次运行时输入NirCmd的完整路径。

 

常用命令

控制音量

# 增加2000个单位的系统音量(最大65535)
nircmd.exe changesysvolume 2000

# 降低5000个单位的系统音量(最大65535)
nircmd.exe changesysvolume -5000

# 设置为最高音量
nircmd.exe setsysvolume 65535

# 设置为静音
nircmd.exe mutesysvolume 1

# 取消静音
nircmd.exe mutesysvolume 0

# 在静音与正常状态之间切换
nircmd.exe mutesysvolume 2

 

文件操作

# 修改一个或多个文件的创建/修改/访问日期。日期参数必须以下面的格式指定:"dd-mm-yyyy hh:nn:ss" 。
setfiletime "c:/temp/myfile.txt" "15-05-2004 11:22:12" now

# 零字节填充指定文件,然后删除文件,用此命令删除掉的文件不可再被恢复。
nircmd.exe filldelete "c:/temp/myfile.dat"

# 把值写入ini文件。如果文件不存在,则自动创建。
nircmd.exe inisetval "c:/test.ini" "section1" "TestValue" "1"

# 删除ini文件中的一对项-值。
nircmd.exe inidelval "c:/test.ini" "section1" "TestValue"

 

程序操作

# 运行应用程序
nircmd.exe exec show "f:/winnt/system32/calc.exe"

# 后台运行程序
nircmd.exe exec hide "c:/temp/wul.exe" /savelangfile

# 结束进程,可以指定进程名、进程的完整路径或者进程的ID
nircmd.exe killprocess iexplore.exe
nircmd.exe killprocess "c:/winnt/system32/calc.exe"
nircmd.exe killprocess /1830

# 等待进程结束,可以指定进程名、进程的完整路径或者进程的ID
nircmd.exe waitprocess iexplore.exe

 

按键命令

对每一个down操作,还应该添加up操作

# 回车
nircmd.exe sendkey enter press

# Shift+Ctrl+Esc
nircmd.exe sendkey shift down
nircmd.exe sendkey ctrl down
nircmd.exe sendkey esc down
nircmd.exe sendkey shift up
nircmd.exe sendkey ctrl up
nircmd.exe sendkey esc up

 

鼠标事件

# 设置光标位置。
nircmd.exe setcursor 100 50

# 设置光标相对于活动窗口位置
nircmd.exe setcursorwin 100 50

# 移动光标
nircmd.exe movecursor 10 10

# 发送点击鼠标右键事件
nircmd.exe sendmouse right click

# 发送一个双击鼠标左键事件:
nircmd.exe sendmouse left dblclick

# 滚动10个单位(标准滑轮鼠标)的鼠标滑轮。(在标准滑轮鼠标上,滑轮值是120的倍数)
nircmd.exe sendmouse wheel 1200

# 按下鼠标左键,把鼠标往左移动20像素点,向下移动30像素点,然后松开鼠标左键。
nircmd.exe sendmouse left down
nircmd.exe sendmouse move -30 20
nircmd.exe sendmouse left up

 

控制系统

# 关闭显示器
nircmd.exe monitor off

# 启动默认屏保
nircmd.exe screensaver

# 进入待机状态
nircmd.exe standby

# 注销当前用户
nircmd.exe exitwin logoff

# 关闭电脑
nircmd.exe exitwin poweroff

# 连接拨号网络或者VPN
nircmd.exe rasdial "My Internet"

# 断开拨号网络或者VPN
nircmd.exe rashangup "My Internet"

 

系统其他

# 隐藏桌面所有图标
nircmd.exe win hide class progman

# 显示桌面所有图标(用以上命令隐藏过后)
nircmd.exe win show class progman

# 隐藏系统时间
nircmd.exe win child class "Shell_TrayWnd" hide class "TrayClockWClass"

# 显示系统时间
nircmd.exe win child class "Shell_TrayWnd" show class "TrayClockWClass"

# 清空所有磁盘上的回收站
nircmd.exe emptybin

# 打开指定注册表项/值
nircmd.exe regedit "HKLM\Software\Microsoft\Windows\CurrentVersion" "CommonFilesDir"

# 重启MySql服务
nircmd.exe service restart MySql

# 全面的系统刷新
nircmd.exe sysrefresh

# 更新系统变量
nircmd.exe sysrefresh environment

# 更新策略设置
nircmd.exe sysrefresh policy

 

朗读

# 等待firefox关闭后,朗读提示
nircmd.exe waitprocess firefox.exe speak text "Firefox was closed"

# 朗读剪贴板内容	
nircmd.exe speak text ~$clipboard$

# 将文件中的内容朗读并存储为音频
nircmd.exe speak file "c:\temp\speak.txt" 0 100 "c:\temp\speak.wav" 48kHz16BitStereo

 

操作剪贴板

# 复制桌面所在路径到剪切板
nircmd.exe clipboard set ~$folder.desktop$

# 复制文本info1.txt中的内容到剪切板
nircmd.exe clipboard readfile "c:\My Files\info1.txt"

# 将剪切板中内容添加到文本info1.txt中
nircmd.exe clipboard addfile "c:\My Files\info1.txt"

# 清空剪切板
nircmd.exe clipboard clear

 

屏幕截图

# 延迟2秒钟,然后保存当前屏幕截图到shot.png
nircmd.exe cmdwait 2000 savescreenshot "c:\temp\shot.png"

# 每隔60秒进行截图一次当前活动窗口,循环10次,并将截图时间保存到文件名中
nircmd.exe loop 10 60000 savescreenshotwin c:\temp\scr~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png

 

快捷方式

# 在桌面创建静音与正常状态切换命令的快捷方式
nircmd.exe cmdshortcut "~$folder.desktop$" "Switch Volume" mutesysvolume 2

# 将nirsoft网址创建到桌面快捷方式
nircmd.exe urlshortcut "http://www.nirsoft.net" "~$folder.desktop$" "NirSoft"

 

弹框窗口

# 弹出选择窗口,询问是否重启。选择是则重启电脑
nircmd.exe qboxcom "Do you want to reboot?" "question" exitwin reboot

# 换行和引号的转义,以下为一个两行且内容有引号的信息窗口
NirCmd infobox "This is the first line~n~qThis is a second line, in quotes~q" "Example"

其实综合来看,NirCmd就是将一些CMD指令做打包和简化,省去一部分查找和编写cmd代码的时间,也算是个有趣的小工具,偶尔也可以用一下。

 


但凡未得到,
但凡是过去,
总是最登对。

《似是故人来》
——林夕