Skip to content

Latest commit

 

History

History
91 lines (78 loc) · 12 KB

File metadata and controls

91 lines (78 loc) · 12 KB

Coming from CMD.EXE

This table was last updated for Nu 0.67.0.

CMD.EXE Nu Task
ASSOC Displays or modifies file extension associations
BREAK Trigger debugger breakpoint
CALL <filename.bat> <filename.bat> Run a batch program
nu <filename> Run a nu script in a fresh context
source <filename> Run a nu script in this context
use <filename> Run a nu script as a module
CD or CHDIR $env.PWD Get the present working directory
CD <directory> cd <directory> Change the current directory
CD /D <drive:directory> cd <drive:directory> Change the current directory
CLS clear Clear the screen
COLOR Set the console default foreground/background colors
ansi {flags} (code) Output ANSI codes to change color
COPY <source> <destination> cp <source> <destination> Copy files
COPY <file1>+<file2> <destination> [<file1>, <file2>] | each { open --raw } | str join | save --raw <destination> Append multiple files into one
DATE /T date now Get the current date
DATE Set the date
DEL <file> or ERASE <file> rm <file> Delete files
DIR ls List files in the current directory
ECHO <message> print <message> Print the given values to stdout
ECHO ON Echo executed commands to stdout
ENDLOCAL export-env Change env in the caller
EXIT exit Close the prompt or script
FOR %<var> IN (<set>) DO <command> for $<var> in <set> { <command> } Run a command for each item in a set
FTYPE Displays or modifies file types used in file extension associations
GOTO Jump to a label
IF ERRORLEVEL <number> <command> if $env.LAST_EXIT_CODE >= <number> { <command> } Run a command if the last command returned an error code >= specified
IF <string> EQU <string> <command> if <string> == <string> { <command> } Run a command if strings match
IF EXIST <filename> <command> if (<filename> | path exists) { <command> } Run a command if the file exists
IF DEFINED <variable> <command> if '$<variable>' in (scope variables).name { <command> } Run a command if the variable is defined
MD or MKDIR mkdir Create directories
MKLINK Create symbolic links
MOVE mv Move files
PATH $env.Path Display the current path variable
PATH <path>;%PATH% $env.Path = ($env.Path | append <path>) Edit the path variable
PATH %PATH%;<path> $env.Path = ($env.Path | prepend <path>) Edit the path variable
PAUSE input "Press any key to continue . . ." Pause script execution
PROMPT <template> $env.PROMPT_COMMAND = { <command> } Change the terminal prompt
PUSHD <path>/POPD enter <path>/dexit Change working directory temporarily
REM # Comments
REN or RENAME mv Rename files
RD or RMDIR rm Remove directory
SET <var>=<string> $env.<var> = <string> Set environment variables
SETLOCAL (default behavior) Localize environment changes to a script
START <path> Partially covered by start <path> Open the path in the system-configured default application
START <internal command> Start a separate window to run a specified internal command
START <batch file> Start a separate window to run a specified batch file
TIME /T date now | format date "%H:%M:%S" Get the current time
TIME Set the current time
TITLE Set the cmd.exe window name
TYPE open --raw Display the contents of a text file
open Open a file as structured data
VER Display the OS version
VERIFY Verify that file writes happen
VOL Show drive information

Forwarded CMD.EXE commands

Nu accepts and runs some of CMD.EXE's internal commands through cmd.exe.

The internal commands are: ASSOC, CLS, ECHO, FTYPE, MKLINK, PAUSE, START, VER, VOL

These internal commands take precedence over external commands.

For example, with a ver.bat file in the current working directory, executing ^ver executes CMD.EXE's internal VER command, NOT the ver.bat file.

Executing ./ver or ver.bat will execute the local bat file though.

Note that Nushell has its own start command which takes precedence. You can call the CMD.EXE's internal START command with the external command syntax ^start.

Clearing the commandline buffer by pressing ESC

CMD.EXE features the ability to clear the commandline buffer by pressing the ESC key.

While Nu does not replicate this by default, a keybind can be added to your config.nu to enable similar functionality:

$env.config.keybindings ++= [{
    name: 'esc_clear'
    modifier: 'None'
    keycode: 'Esc'
    mode: ['Emacs', 'Vi_Normal']
    event: {edit: 'Clear'}
}]