How to run a .bat file (Batch File) by Excel Macro

.

By executing the below code, you can run any .bat file in Excel Macro. This is very important that you should keep your Excel Sheet from which you want to execute the Batch file in “C:\” drive only. It can be inside any other sub-folder but in C drive Only.

shell("c:\abc.bat")

'    OR

shell("CMD.EXE /c c:\abc.bat")

Buy a coffee for the author

Adsense

Download FREE Tools and Templates

There are many cool and useful excel tools and templates available to download for free. For most of the tools, you get the entire VBA code base too which you can look into it, play around it, and customize according to your need.

Dynamic Arrays and Spill Functions in Excel: A Beginner’s Guide
Dynamic Arrays and Spill Functions in Excel: A Beginner’s Guide

In today's tutorial, we'll be diving into the exciting world of dynamic arrays and spill functions in Office 365 Excel. These features have revolutionized the way we work with data, providing a more flexible and efficient way to handle arrays. I am going to explain...

How to Declare a Public Variable in VBA
How to Declare a Public Variable in VBA

While programming in VBA sometimes you need to declare a Public Variable that can store the value throughout the program. Use of Public Variable: Let's say you have 4 different Functions in your VBA Code or Module and you have a variable that may or may not be...

How to Copy content from Word using VBA

As many of us want to deal with Microsoft Word Document from Excel Macro/VBA. I am going to write few articles about Word from Excel Macro. This is the first article which opens a Word Document and read the whole content of that Word Document and put it in the Active...

What is Excel Formula?

Excel Formula is one of the best feature in Microsoft Excel, which makes Excel a very very rich application. There are so many useful built-in formulas available in Excel, which makes our work easier in Excel. For all the automated work, Excel Macro is not required. There are so many automated things can be done by using simple formulas in Excel. Formulas are simple text (With a Syntax) which is entered in to the Excel Worksheet Cells. So how computer will recognize whether it is a formula or simple text? Answer is simple.. every formula in Excel starts with Equal Sign (=).

You May Also Like…

VBA: Reverse a string

It is very easy to get the Reverse of a string entered by user in Excel VBA by using VBA inbuilt functionality....

read more

5 Comments

  1. Olorus

    It is a good practise to add two commands in the begin of your bat files,

    1)cd c:FolderLocationWithBatFile

    2)c:

    Doing so the cmd will switch to the drive and location of the bat file,

    then the bat file can be found and executed. It works dependless on the current path.

    Reply
    • Vishwamitra Mishra

      Thanks Olorus for the feedback 🙂
      Yes but that is for inside the .bat file. But to launch that batch file, we need to specify the path where exactly that batch file is sitting. That path you can give only in your Shell command.
      Let me know, if I am wrong 🙂 🙂

      Reply
  2. Tuisiong

    awesome!

    Reply
  3. Aravind

    I want to create/modify a bat file from the contents of the excel sheet
    ex: i want to copy all contents from A5:A25 cells to a bat file and execute the same
    is it possible to so..?

    Reply
  4. Sunseekin

    I use this to save the PreLogin images from Windows:

    Sub GetPreLoginPics()

    Dim the_Batch As String
    Dim iRow As Integer
    Dim PID As Variant

    the_Batch = Application.DefaultFilePath & “\GetPreLoginPics.bat”

    Open the_Batch For Output As #1
    iRow = 5
    While Cells(iRow, 1).Value “”
    Print #1, Cells(iRow, 1).Value
    iRow = iRow + 1
    Wend
    Close #1

    Shell (the_Batch) ‘ runs the batch file
    End Sub

    ‘*******************************************************

    The batch commands are in the current worksheet beginning in A5.
    @echo off
    rem
    rem This batch file copies pre-login photos to %userprofile%\desktop\PreLoginPics.
    rem See http://bit.ly/3tFMvYq for the Microsoft instructions on this process.
    rem
    if exist %userprofile%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\ (
    cd %userprofile%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets
    ) else (
    exit /b 1
    )
    if exist %userproifile%\desktop\PreLoginPics\ (
    rem The folder has already been created.
    ) else if exist %userproifile%\desktop\PreLoginPics (
    rem There is a FILE named PreLoginPics so we do not continue.
    exit /b 2
    ) else (
    rem %userproifile%\desktop\PreLoginPics does not exist
    md %userproifile%\desktop\PreLoginPics
    )
    copy /Y %userprofile%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*.* %userproifile%\desktop\PreLoginPics\*.jpg
    start explorer %userproifile%\desktop\PreLoginPics
    exit /b 0

    Reply

Submit a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Join and get a FREE! e-Book

Don't miss any articles, tools, tips and tricks, I publish here

You have Successfully Subscribed!

Pin It on Pinterest