MR
Mayur Rathi
@github
⭐ 34.1k GitHub stars

Batch-Files

Batch-Files是一款code方向的AI技能,核心价值是Expert-level Windows batch file (,可用于解决开发者在code领域的实际问题,帮助用户提升效率、自动化重复任务或优化工作流。

Expert-level Windows batch file (.bat/.cmd) skill for writing, debugging, and maintaining CMD scripts. Use when asked to "create a batch file", "write a .bat script", "automate a Windows task", "CMD s

Last verified on: 2026-05-30
mkdir -p ./skills/batch-files && curl -sfL https://raw.githubusercontent.com/github/awesome-copilot/main/skills/batch-files/SKILL.md -o ./skills/batch-files/SKILL.md

Run in terminal / PowerShell. Requires curl (Unix) or PowerShell 5+ (Windows).

Skill Content

# Batch Files


A comprehensive skill for creating, editing, debugging, and maintaining Windows batch files (.bat/.cmd) using cmd.exe. Applies to CLI tool development, system administration automation, scheduled tasks, file operations scripting, and PATH-based executable scripts.


When to Use This Skill


- Creating or editing `.bat` or `.cmd` files

- Automating Windows tasks (file operations, deployments, backups)

- Building CLI tools intended for a `bin/` folder on PATH

- Writing scheduled task scripts (SCHTASKS, Task Scheduler)

- Debugging batch script issues (variable expansion, error levels, quoting)

- Integrating batch scripts with external tools (curl, git, Node.js, Python)

- Scaffolding new batch-based projects with structured templates


Prerequisites


- Windows NT-based OS (Windows 7 or later)

- cmd.exe (built-in)

- Optional: a `bin/` directory on PATH for distributing scripts as commands

- Optional: PATHEXT configured to include `.BAT;.CMD` (default on Windows)


Command Interpretation


cmd.exe processes each line through four stages in order:


1. **Variable substitution** — `%VAR%` tokens are replaced with environment variable values. `%0`–`%9` reference batch arguments. `%*` expands to all arguments.

2. **Quoting and escaping** — Caret `^` escapes special characters (`& | < > ^`). Quotation marks prevent interpretation of enclosed special characters. In batch files, `%%` yields a literal `%`.

3. **Syntax parsing** — Lines are split into pipelines (`|`), compound commands (`&`, `&&`, `||`), and parenthesized groups `( )`.

4. **Redirection** — `>` overwrites, `>>` appends, `<` reads input, `2>` redirects stderr, `2>&1` merges stderr into stdout, `>NUL` discards output.


Variables


Environment Variables


bat
set _MY_VAR=Hello World
echo %_MY_VAR%
set _MY_VAR=

- `set` with no arguments lists all variables

- `set _PREFIX` lists variables starting with `_PREFIX`

- No spaces around `=` — `set name = val` sets variable `"name "` to `" val"`


Special Variables


| Variable | Value |

|----------|-------|

| `%CD%` | Current directory |

| `%DATE%` | System date (locale-dependent) |

| `%TIME%` | System time HH:MM:SS.mm |

| `%RANDOM%` | Pseudorandom number 0–32767 |

| `%ERRORLEVEL%` | Exit code of last command |

| `%USERNAME%` | Current user name |

| `%USERPROFILE%` | Current user profile path |

| `%TEMP%` / `%TMP%` | Temporary file directory |

| `%PATHEXT%` | Executable extensions list |

| `%COMSPEC%` | Path to cmd.exe |


Scoping with SETLOCAL / ENDLOCAL


bat
setlocal
set _LOCAL_VAR=scoped value
endlocal
REM _LOCAL_VAR is no longer defined here

To return a value from a scoped block:


bat
endlocal & set _RESULT=%_LOCAL_VAR%

Delayed Expansion


Variables inside parenthesized blocks are expanded at parse time. Use delayed expansion for runtime evaluation:


bat
setlocal EnableDelayedExpansion
set _COUNT=0
for /l %%i in (1,1,5) do (
    set /a _COUNT+=1
    echo !_COUNT!
)
endlocal

- `!VAR!` expands at execution time (delayed)

- `%VAR%` expands at parse time (immediate)


Control Flow


Conditional Execution


bat
if exist "output.txt" echo File found
if not defined _MY_VAR echo Variable not set
if "%_STATUS%"=="ready" (echo Go) else (echo Wait)
if %ERRORLEVEL% neq 0 echo Command failed

Comparison operators: `equ`, `neq`, `lss`, `leq`, `gtr`, `geq`. Use `/i` for case-insensitive string comparison.


Compound Commands


bat
command1 & command2        & REM Always run both
command1 && command2       & REM Run command2 only if command1 succeeds
command1 || command2       & REM Run command2 only if command1 fails

FOR Loops


bat
REM Iterate over a set of values
for %%i in (alpha beta gamma) do echo %%i

REM Numeric range: start, step, end
for /l %%i in (1,1,10) do echo %%i

REM Files in a directory
for %%f in (*.txt) do echo %%f

REM Recursive file search
for /r %%f in (*.log) do echo %%f

REM Directories only
for /d %%d in (*) do echo %%d

REM Parse comm

🎯 Best For

  • Debugging engineers
  • QA teams
  • Claude users
  • GitHub Copilot users
  • Software engineers

💡 Use Cases

  • Tracing runtime errors in production logs
  • Identifying memory leaks
  • Code quality improvement
  • Best practice enforcement

📖 How to Use This Skill

  1. 1

    Install the Skill

    Copy the install command from the Terminal tab and run it. The SKILL.md file downloads to your local skills directory.

  2. 2

    Load into Your AI Assistant

    Open Claude or GitHub Copilot and reference the skill. Paste the SKILL.md content or use the system prompt tab.

  3. 3

    Apply Batch-Files to Your Work

    Open your project in the AI assistant and ask it to apply the skill. Start with a small module to verify the output quality.

  4. 4

    Review and Refine

    Review AI suggestions before committing. Run tests, check for regressions, and iterate on the skill output.

❓ Frequently Asked Questions

Can this debug production issues?

Yes, but always ensure you have proper logging and monitoring in place first.

Is Batch-Files compatible with Cursor and VS Code?

Yes — this skill works with any AI coding assistant including Cursor, VS Code with Copilot, and JetBrains IDEs.

Do I need specific dependencies for Batch-Files?

Check the install command and Works With section. Most code skills only require the AI assistant and your codebase.

How do I install Batch-Files?

Copy the install command from the Terminal tab and run it. The skill downloads to ./skills/batch-files/SKILL.md, ready to use.

Can I customize this skill for my team?

Absolutely. Edit the SKILL.md file to add team-specific instructions, examples, or workflows.

⚠️ Common Mistakes to Avoid

Debugging without context

Always provide the full error stack and surrounding code context for accurate debugging.

Skipping validation

Always test AI-generated code changes, even for simple refactors.

Missing dependency updates

Check if the skill requires updated dependencies or new packages.

🔗 Related Skills