= Windows cmd shell batch scripting cheat sheet Yuri Slobodyanyuk v1.0, 2022-08-31 :homepage: https://yurisk.info :toc: Author: Yuri Slobodyanyuk, https://www.linkedin.com/in/yurislobodyanyuk/ == Controlling scripts themselves [cols=2, options="header"] |=== |Command |Description |*rem* |Start a comment, till the end of line. It can be used to comment out a whole line or part of it. |*cls* |Clear the screen buffer. |*echo _text to display_* *echo off/on* *echo.* |Print text on line, or, with `off/on` switch without text, turn off/on echoing the commands being run. Usually, you set `echo off` as the 1st line in a batch script, and the `echo on` as the last line. Turning echoing off does not hide _output_ of the commands run, just the commands themselves. The 3rd option is `echo` followed immediately by _dot_ and it causes echo to print a blank line (an dthis is the only way to do so). |*@* |Turn off echoing only for the command preceded by this @. E.g. `@echo off` to prevent the _echo off_ being printed itself. |*title _Title bar text_* |Change the title of the cmd.exe window for this session. As a rule of a good style, change _title_ on each stage of the script, to let users know what the script is doing. |=== == Script arguments [cols=2, options="header"] |=== |Command |Description |%_n_ |Positional argument to the script from the command line. _n_ can be from 0 to 9. |%0 |The script name. The actual arguments to the script start with %1. E.g. `echo The script was called as %0, with the %1 as the first argument` |%* |The rest of the positional arguments after the 9th altogether. The individual args are not accessible directly, use `SHIFT`-ing. |*shift [/_n_]* |Shift positional arguments by one. If `/n` is given, will shift starting with n+1. E.g. `shift /4` will shift 5th to become 4th, 6th will become 5th, and so on, while arguments before 4 will stay untouched. |===