NirCmd v2.87
Copyright (c) 2003 - 2024 Nir Sofer

See Also

Description

NirCmd is a small command-line utility that allows you to do some useful tasks without displaying any user interface. By running NirCmd with simple command-line option, you can write and delete values and keys in the Registry, write values into INI file, dial to your internet account or connect to a VPN network, restart windows or shut down the computer, create shortcut to a file, change the created/modified date of a file, change your display settings, turn off your monitor, open the door of your CD-ROM drive, and more...

Examples of what you can do with NirCmd

Open the door of J: CD-ROM drive nircmd.exe cdrom open j:
Close the door of Y: CD-ROM drive nircmd.exe cdrom close y:
Speaks the text currently in the clipboard (For Windows XP/Vista/7/8). speak text ~$clipboard$
Speaks the text stored inside speak.txt into speak.wav filename (For Windows XP/Vista/7/8). speak file "c:\temp\speak.txt" 0 100 "c:\temp\speak.wav" 48kHz16BitStereo
Increase the system volume by 2000 units (out of 65535) nircmd.exe changesysvolume 2000
Decrease the system volume by 5000 units (out of 65535) nircmd.exe changesysvolume -5000
Set the volume to the highest value nircmd.exe setsysvolume 65535
Mute the system volume nircmd.exe mutesysvolume 1
Unmute the system volume nircmd.exe mutesysvolume 0
Switch the system volume between the mute and normal state. nircmd.exe mutesysvolume 2
Create a shortcut on your desktop that switch the system volume between the mute and normal state. nircmd.exe cmdshortcut "~$folder.desktop$" "Switch Volume" mutesysvolume 2
Turn off the monitor nircmd.exe monitor off
Start the default screen saver nircmd.exe screensaver
Put your computer in 'standby' mode nircmd.exe standby
log off the current user nircmd.exe exitwin logoff
Ask if you want to reboot, and if you answer 'Yes', reboot the computer. nircmd.exe qboxcom "Do you want to reboot ?" "question" exitwin reboot
Turn off your computer nircmd.exe exitwin poweroff
Turn off all computers specified in computers.txt ! multiremote copy "c:\temp\computers.txt" exitwin poweroff force
Dial to "My Internet" connection nircmd.exe rasdial "My Internet"
Disconnect the "My Internet" connection nircmd.exe rashangup "My Internet"
Make your Internet Explorer windows 75% transparent ! (192 / 256) nircmd.exe win trans ititle "internet explorer" 192
Minimize all your Internet Explorer windows nircmd.exe win min class "IEFrame"
Close all your Internet Explorer windows nircmd.exe win close class "IEFrame"
Close all your Explorer windows (My Computer, folders, and so on) nircmd.exe win close class "CabinetWClass"
Hide all your Internet Explorer windows nircmd.exe win hide class "IEFrame"
Show all your Internet Explorer windows (after you made them hidden with previous example) nircmd.exe win show class "IEFrame"
Center all top-level windows nircmd.exe win center alltop
Remove the title bar of My Computer window. nircmd.exe win -style title "my computer" 0x00C00000
Return the title bar of My Computer window that we removed in the previous example. nircmd.exe win +style title "my computer" 0x00C00000
Set the My Computer window to right-to-left order (For hebrew and arabic languages) nircmd win +exstyle title "my computer" 0x00400000
Set all child windows of My Computer window to right-to-left order (For hebrew and arabic languages) nircmd win child title "my computer" +exstyle all 0x00400000
Create a shortcut on your desktop that closes all your Internet Explorer windows nircmd.exe cmdshortcut " "~$folder.desktop$ "Close All IE" win close class "IEFrame"
Create a shortcut on your desktop that hides all your Internet Explorer windows nircmd.exe cmdshortcut " "~$folder.desktop$ "Hide All IE" win hide class "IEFrame"
Create a shortcut on your desktop that shows back all your Internet Explorer windows nircmd.exe cmdshortcut " "~$folder.desktop$ "Show All IE" win show class "IEFrame"
Set the Windows Calculator as top-most window (above all other windows) nircmd.exe win settopmost title "Calculator" 1
Set the Windows Calculator back to regular window (non top-most window) nircmd.exe win settopmost title "Calculator" 0
Create a shortcut to Windows calculator under Start Menu->Programs->Calculators nircmd.exe shortcut "f:\winnt\system32\calc.exe" "~$folder.programs$\Calculators" "Windows Calculator"
Hide the desktop window nircmd.exe win hide class progman
Show the desktop window (After hiding it in previous example) nircmd.exe win show class progman
Hide the start button on the system tray nircmd.exe win child class "Shell_TrayWnd" hide class "button"
Show the start button on the system tray nircmd.exe win child class "Shell_TrayWnd" show class "button"
Hide the clock on the system tray nircmd.exe win child class "Shell_TrayWnd" hide class "TrayClockWClass"
Show the clock on the system tray nircmd.exe win child class "Shell_TrayWnd" show class "TrayClockWClass"
Kill (terminate) all instance of Internet Explorer processes nircmd.exe killprocess iexplore.exe
Create a shortcut on your desktop that opens the door of K: CDROM drive when you run it. nircmd.exe cmdshortcut "~$folder.desktop$" "Open CDROM" cdrom open k:
Create a shortcut to NirSoft Web site on your desktop nircmd.exe urlshortcut "http://www.nirsoft.net" "~$folder.desktop$" "NirSoft"
Add NirSoft Web site to your Favorities under Links folder. nircmd.exe urlshortcut "http://www.nirsoft.net" "~$folder.favorites$\Links" "NirSoft"
Create a shortcut to NirSoft Web site on the desktop of all computers listed in computers.txt nircmd.exe multiremote copy "c:\temp\computers.txt" urlshortcut "http://www.nirsoft.net" "~$folder.common_desktop$" "NirSoft"
Set the display mode to 800x600x24bit colors nircmd.exe setdisplay 800 600 24
Create a shortcut on the desktop that set the display mode to 800x600x24bit colors nircmd.exe cmdshortcut "~$folder.desktop$" "800x600x24" setdisplay 800 600 24
Copy all shortcuts on your desktop to another folder (f:\temp\desktop). nircmd.exe execmd copy "~$folder.desktop$\*.lnk" f:\temp\desktop
Restart your Apache server (under Windows NT/2000/XP/2003) nircmd.exe service restart apache
Create a shortcut on your desktop that restarts the Apache server nircmd.exe cmdshortcut "~$folder.desktop$" "Restart Apache" service restart apache
Restart your IIS nircmd.exe service restart w3svc
Restart MySql nircmd.exe service restart MySql
Open the desired Registry key/value in RegEdit nircmd.exe regedit "HKLM\Software\Microsoft\Windows\CurrentVersion" "CommonFilesDir"
Open the Registry key that you copied to the clipboard in RegEdit. nircmd regedit "~$clipboard$"
Disable the screen saver nircmd.exe regsetval sz "HKCU\control panel\desktop" "ScreenSaveActive" 0
Enable the screen saver nircmd.exe regsetval sz "HKCU\control panel\desktop" "ScreenSaveActive" 1
Change the date/time of the specified filename (creation time and modified time) nircmd.exe setfiletime "c:\temp\myfile.txt" "24-06-2003 17:57:11" "22-11-2005 10:21:56"
Copy your desktop folder path to the clipboard nircmd.exe clipboard set ~$folder.desktop$
Copy your start menu folder path to the clipboard nircmd.exe clipboard set ~$folder.start_menu$
Copy the content of info1.txt (simple text file) to the clipboard nircmd.exe clipboard readfile "c:\My Files\info1.txt"
Add the text content of clipboard to info1.txt nircmd.exe clipboard addfile "c:\My Files\info1.txt"
Clear the clipboard nircmd.exe clipboard clear
Create all folders specified in "c:\temp\folders.txt". The folder path names are separated by CRLF characters. nircmd.exe paramsfile "c:\temp\folders.txt" "" "" execmd md ~$fparam.1$
Install the specified .NET assembly in the global assembly cache (like gacutil) nircmd.exe gac install "C:\temp\MyAssembly\bin\MyAssembly.dll"
Empty the recycle bin in all drives. nircmd.exe emptybin
Answer 'Yes' to a standard Windows message-box. nircmd.exe dlg "" "" click yes
Wait 2 seconds, and then save the current screen to shot.png nircmd.exe cmdwait 2000 savescreenshot "f:\temp\shot.png"
Save 10 screenshots in a loop, and wait 60 seconds between the screenshot save calls. The filenames of the screenshot will contain the time and date of the saved screenshot. nircmd.exe loop 10 60000 savescreenshot c:\temp\scr~$currdate.MM_dd_yyyy$-~$currtime.HH_mm_ss$.png
Wait until Firefox is closed, and then say "Firefox was closed" nircmd.exe waitprocess firefox.exe speak text "Firefox was closed"
Run RegEdit with SYSTEM user (On Windows 7/8/Vista/2008), which allows you to view all hidden system Registry keys nircmd.exe elevatecmd runassystem c:\windows\regedit.exe

System Requirements

This utility can work in all versions of Windows operating system: Windows 9x/ME, Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows 7, Windows 8, and Windows 10.

Versions History

Date Version Description
23/04/20242.87
  • Added ~$folder.localappdata$ variable.
  • Fixed the ~$folder.common_programfiles$ variable to use the correct folder (In previous versions it was identical to ~$folder.programfiles$ )
01/08/20192.86
  • Fixed bug: elevate and other commands failed to work properly when there were many parameters after the command.
23/06/20192.85
  • The runinteractive and runinteractivecmd commands now work properly even if you don't run them from a Windows service.
  • Fixed bug: The behvaiour of consolewrite command was unexpected when there was '%' character.
22/04/20192.84
  • Fixed to work again on Windows 98/2000.
19/04/20192.83
  • Added runinteractive and runinteractivecmd commands, which allows you to run a process or NirCmd command that accesses the GUI from a Windows service.
  • For example, if you try to use the savescreenshot command from a Windows service, you'll get a black image, because NirCmd cannot access the user interface from a Windows service.
  • You can solve this problem with runinteractivecmd command: nircmd.exe runinteractivecmd savescreenshot "c:\temp\screenshot1.png"
  • Be aware that runinteractive and runinteractivecmd commands only work from a Windows service ('SYSTEM' user).
22/03/20192.82
  • Fixed the savescreenshot or savescreenshotfull commands to work properly with DPI scaling.
23/05/20162.81
  • Fixed bug: NirCmd failed to execute the cmdwait, loop and a few other commands after qboxcom and qboxcomtop commands.
30/01/20162.80
  • Fixed bug: clipboard readfile failed to read the last character of Ascii file.
  • Added writeufile and addufile to clipboard command, for writing files in Unicode.
  • Fixed the restartexplorer command to work properly on Windows 10.
10/08/20132.75
  • Added new commands: moverecyclebin, suspendprocess , resumeprocess.
  • Added etitle option to the find parameter of win command.
  • 'clipboard readfile' command now reads Unicode files (UTF-8 and UTF-16).
29/10/20122.71
  • Added runassystem command, which allows you to run a process with SYSTEM user (Works on Windows 7/8/Vista/2008)
12/09/20122.70
  • Added new option to speak command: You can now save the entire speach into a .wav file that can be played with any media player (Instead of playing it directly to your sound card).
  • Added restartexplorer command, which simply restarts Windows Explorer gracefully.
  • Added screensavertimeout command, which allows you to set the screensaver timeout, in seconds.
  • Added togglemax, togglemin, togglehide, toggledisable actions to win command.
  • Added SystemSounds support for setappvolume, changeappvolume, and muteappvolume commands.
  • Fixed issue on Windows 7: 'win close alltopnodesktop' command caused a shutdown dialog-box to appear.
  • Fixed the setprimarydisplay to work properly.
28/06/20112.65
  • Added setdefaultsounddevice command (for Windows 7/Vista/2008 only), which allows you to set the default sound device.
  • Added setsubunitvolumedb command (for Windows 7/Vista/2008 only), which allows you to set the volume of sound device subunits (Line In, Microphone, and so on)
  • Added mutesubunitvolume command (for Windows 7/Vista/2008 only), which allows you to mute/unmute the volume of sound device subunits (Line In, Microphone, and so on)
21/06/20112.60
  • Added mediaplay command for playing audio file (.mp3, .wav, and so on) for the specified number of milliseconds.
  • Added changebrightness and setbrightness commands for setting the screen brightness on laptops and netbook computers.
08/06/20112.55
  • On savescreenshot, savescreenshotfull, and savescreenshotwin commands, you can now specify *clipboard* as a filename, in order to save the screenshow into the clipboard
  • On savescreenshot command, you can now specify a rectangle to capture as x, y, width, and height instead of capturing the entire screen.
  • Fixed savescreenshotfull command to work properly on multiple screen system with negative coordinates.
27/03/20112.52
  • Added 'runas' command, which allows you to run a new process with the specified user name/password.
  • Added 'Flash' action to the win command, with allows you to flash the specified window.
13/03/20112.51
  • Added 'focused' option for setappvolume, changeappvolume, and muteappvolume commands, which allow you to easily change the volume of the application that is currently in focus, on Windows 7/Vista/2008.
  • Added 'default_record' option for setsysvolume, changesysvolume, setsysvolume2, changesysvolume2, and mutesysvolume commands, which allows you set easily change the volume of default recording device, on Windows 7/Vista/2008.
24/02/20112.50
  • Added 3 new sound volume commands to change or mute application volume on Windows 7/Vista/2008: setappvolume, changeappvolume, muteappvolume
  • Added new information command that shows you a message box with all sound devices on your Windows 7/Vista/2008 system: showsounddevices.
22/02/20112.48
  • Fixed the problems with the timeout of the tray balloon in trayballoon command.
20/01/20112.47
  • Fixed bug: The sendkeypress command didn't work properly with Fxx keys (F1, F2, and so on).
28/11/20102.46
  • Added option to locate window by process in win command.
  • Added max and min options (Minimized and maximized windows) into exec and exec2 commands.
  • Added x64 builds of nircmd.exe and nircmdc.exe
18/10/20102.45
  • Added trayballoon command - displays a tray balloon with your desired text and icon.
  • Added sendkeypress command - Alternative to the sendkey command. Allows you to send key press combination in much easier way, for example: sendkeypress ctrl+shift+esc
  • Added clonefiletime command to clone the date/time of existing file into one or more files.
  • Added setconsolemode command to set the console display mode - window or full screen.
  • Added setconsolecolor command to set the foreground and background colors of the console text.
  • Added consolewrite command to write text into the console window.
  • Added debugwrite for writing text into the debug output.
  • Added ~$folder.mydocuments$ variable.
21/02/20102.41
  • Fixed a bug in elevate command: when running a program without parameters, NirCmd sent the elevate command string as a parameter of the program.
16/02/20102.40
  • Added elevate and elevatecmd commands to run and execute commands with administrator rights under Windows 7/Vista/2008.
  • Added monitor parameter to setdisplay command, for using it with multiple monitors.
  • Added setprimarydisplay command.
  • Added folder.programfiles and folder.common_programfiles variables.
  • Added async_off, async_on, async_low for monitor command. You can try them if NirCmd.exe remains in memory when you use monitor on/off command.
26/05/20092.37
  • Improved the help .chm file - Now it contains a link to every command.
  • Added help command - Automatically opens the reference of the desired command in http://nircmd.nirsoft.net. For example, if you type 'nircmd.exe help speak', the reference page of speak command - http://nircmd.nirsoft.net/speak.html will be opened in your default browser.
19/05/20092.36
  • Fixed bug in script: Sometimes the last line in the script was not executed properly.
20/04/20092.35
  • Added loop command - execute a command multiple times.
  • Added currtime and currdate variables.
  • waitprocess - Added option to execute a NirCmd command after the process was closed.
  • Added rem (or ;) command, just for adding remarks in a script.
01/04/20092.30
  • Added speak command - Speaks the contents of the text or file that you specify, by using the Speech library (SAPI) that comes with Windows XP and Windows Vista.
  • Added savescreenshotfull command.
02/02/20092.25
  • New actions for clipboard command - loadclp and saveclp (load/save in Windows .clp format)
  • New command: setprocessaffinity
01/01/20092.20
  • New commands: waitprocess, setprocesspriority, qboxtop, qboxcomtop.
  • New action in clipboard command: copyimage (Copy image file to the clipboard)
25/06/20082.15
  • New commands: setcursorwin, savescreenshotwin, filldelete
12/04/20082.10
  • New commands: shellcopy, savescreenshot
09/02/20082.05
  • New commands: shellrefresh, convertimage, convertimages
  • New option in clipboard command - saveimage
16/06/20072.00
  • All sound volume commands and monitor command now works under Vista.
  • New commands: dlg, dlgany, sendkey, sendmouse, returnval
  • New actions in win command - dlgclick, dlgsettext, dlgsetfocus
24/07/20061.85
  • New command: cmdshortcutkey
15/07/20061.84
  • Starting from this version, if you don't specify a sound device index in setsysvolume, changesysvolume, setsysvolume2, changesysvolume2 and mutesysvolume commands, the default sound device in control panel ("preferred device") is used.
  • New find options in win command: active, foreground, desktop
20/05/20061.83
  • Fixed bug with parameter variables: parameter dialog-box appear more than once.
  • New find option in Win command: alltopnodesktop
18/02/20061.82
  • New win actions: postmsg and sendmsg.
  • New command: closeprocess
  • NirCmd now returns a non-zero value on error.
19/11/20051.81
  • New command: emptybin - Empty the Recycle Bin.
  • New optional parameter in setdisplay command: refresh rate.
  • rashangup command without parameter - disconnect all active connections.
24/09/20051.80
  • New commands: exec2, cmdwait.
  • New options in clipboard command.
  • Volume commands (setsysvolume, changesysvolume, setsysvolume2, changesysvolume2, mutesysvolume) now allows you to change the volume of non-default sound card.
07/07/20051.70
  • New win actions: activate, hideshow, +style, -style, +exstyle, -exstyle
  • New commands: movecursor, setcursor.
  • New command: setfilefoldertime - allows you to change the date/time of folders, under Windows 2000/XP only.
10/06/20051.62
  • New actions in win command: focus, enable, disable
26/05/20051.61
  • new command: sysrefresh - make a general system refresh after modifying your system settings in the Registry.
07/05/20051.60
  • New paramsfile command: Allows you to execute a command multiple times by loading the parameters from a text file.
  • New actions in win command: move, center, settext.
  • New 'child' action in win command: Allows you to move/hide child windows (For example: the start button in the system tray)
  • New clipboard command: Allows you to put a string in the clipboard, and clear the clipboard.
  • New gac command: Allows you to install assemblies in Global Assembly Cache.
28/12/20041.56
  • New variable: ~$clipboard$ - paste the text that you copied to the clipboard into the command-line.
  • Parameter variables: ~$param.ParamName$ - Display an input window for typing the text that you want insert into the command-line.
07/12/20041.55 Added RegEdit command.
18/11/20041.54
  • On reg commands (regsetval, regdelval, regdelkey), you can now also use the following abbreviated key name: HKCU for HKEY_CURRENT_USER, HKLM for HKEY_LOCAL_MACHINE, HKCR for HKEY_CLASSES_ROOT, HKU for HKEY_USERS, HKCC for HKEY_CURRENT_CONFIG.
  • redraw action for win command.
03/11/20041.53 Fixed 'monitor off' problem in XP SP2.
09/10/20041.52 rasapi32.dll is now loaded only when using the dial commands (rasdial, rasdialdlg, rashangup). In previous versions, NirCmd was statically linked to rasapi32.dll, and that caused problems in old NT systems.
29/09/20041.51 Variable names are now enclosed with '$' char instead of '%' char.
I made this change because the '%' char causes problems when running NirCmd from cmd/bat file. using the '%' char for variable names is still supported for backward compatibility.
22/09/20041.50
  • New commands: cmdshortcut, regsvr, mutesysvolume, changesysvolume, changesysvolume2, setsysvolume2.
  • New actions in win command: trans, setsize, settopmost, ititle.
  • New variables: folder.nircmd, nir.exefile
  • nircmdc.exe - console version of NirCmd.
  • Changed name - from NirComLime to NirCmd.
05/05/20041.40
  • New commands: wait, setvolume, setsysvolume, execmd, exec.
  • New commands for executing NirCmd on remote machines: remote and multiremote.
  • Folder and system variables.
  • New option in setfiletime command - set the file time to the current time (now parameter)
  • New parameter in shortcut command - hot key.
01/03/20041.30
  • New commands: qboxcom, beep, stdbeep, cdrom, urlshortcut, monitor, screensaver, standby, and hibernate.
  • Fixed the bug with ~x string sequences.
08/01/20041.20
  • New commands: setdialuplogon, script
  • Special string sequences (~q, ~t, ~n and so on) to allow you to embed quotes and new line characters into the parameters of any command.
19/11/20031.11 New options in shortcut command
10/10/20031.10 New commands: killprocess, service, memdump, win, lockws.
09/09/20031.00 First release.

License

This utility is released as freeware. You are allowed to freely distribute this utility via floppy disk, CD-ROM, Internet, or in any other way, as long as you don't charge anything for this. If you distribute this utility, you must include all files in the distribution package, without any modification !

View NirCmd Full Help File
Download NirCmd
Download NirCmd 64-bit