To prepare a new batch script, save the file as plain ASCII text with the file extension .CMD
It is also possible to run batch scripts with the .BAT extension, but this is not recommended unless you need compatibility with Windows 95 (.BAT files will set the ERRORLEVEL following inconsistent MS-DOS style rules).
Edit a batch file
The default Notepad editor can be used to create and edit Batch Scripts
Run a batch file
A batch file can be run by double clicking it in Windows explorer, or by typing the name/path at the command line, optionally passing any parameters needed.
From the start menu: START ➞ RUN c:\path_to_scripts\my_script.cmd, OK
See AlsoHow To Run Bash Script In Linux? - GeeksforGeeksHow do I pass command line arguments to a Node.js program and receive them? | Better Stack CommunityNode.Js Compilation: Essential Steps For Efficient Development - Groove Technology - Software Outsourcing SimplifiedSending Command Line Arguments to NPM Script - GeeksforGeeksIf the filename includes any spaces, then you will need to surround the command with quotes:
"c:\path to scripts\my script.cmd"
Open a new CMD prompt by choosing START ➞ RUN cmd, OK
From the command line, enter the name of the script and press return.
C:\Batch> Demo.cmd
or
C:\Batch> c:\path_to_scripts\my_script.cmd param1 param2This can be made easier by creating a shortcut for the start menu or taskbar.
To run a batch file from within another batch file, use the CALL command, otherwise the first script will start the second script and immediately exit, so any further commands in the first script will not run.
View the startup command line
The environment Variable %CmdCmdLine% will expand into the original command line passed to CMD.EXE
When a batch file is launched from the command line %CmdCmdLine% will return:
C:\WINDOWS\system32\cmd.exe param1When a batch file is launched by double clicking in Windows Explorer or START ➞ RUN, %CMDCMDLINE% will return:
C:\WINDOWS\system32\cmd.exe /c ""C:\demo\batch.cmd param1The /c can be used to detect the start mode:
Echo %CmdCmdLine% | findstr /c:" /c " >nul && Echo Started with a double click.
Run a PowerShell script
To run a PowerShell script from the CMD shell:
C:\> powershell -file "c:\batch\demo.ps1"
With arguments:
C:\> powershell -file "c:\batch\demo.ps1" filename1.txt Testing
If the arguments need quotes you will need to triple them so they are escaped:
C:\> powershell -file "c:\batch\demo.ps1" """\Path To\filename1.txt""" """A Test string"""
When calling PowerShell from CMD be aware that a comma is a CMD delimiter, this makes it impossible to pass an array of comma separated values to PowerShell. item1,item2,item3 is treated the same as item1 item2 item3
Run a VBScript file
To run a VBScript from the CMD shell:
C:\> cscript c:\batch\demo.vbs
“The method of the enterprising is to plan with audacity and execute with vigor” ~ John Christian Bovee
Related commands
START - Start a program, command or batch file.
How-to: Run with elevated permissions "As Admin"
RUN commands Start ➞ Run commands.
How-to: Run a script from PowerShell
How-to: Run a script from VBScript
Copyright © 1999-2024 SS64.com
Some rights reserved