10

I need to run this script I made. This batch should copy compiled program on STM32 Nucleo. It uses wmic to find Nucleo's virtual drive's letter by it's label:

@echo off
for /f %%D in ('wmic volume get DriveLetter^, Label ^| find "NODE_F446RE"') do set nucleo_drive=%%D
IF EXIST %D%\DETAILS.TXT (
  IF EXIST main.bin (
    @echo on
    xcopy main.bin %D%
    @echo off
    echo Copied main.bin on nucleo
  ) ELSE (
    echo Binary not found. Run `mingw32-make` in this directory to compile the project.
  )
) ELSE (
  echo Nucleo drive not found. If needed, edit the `find "NODE_F446RE"` part of this script to refference your nucleo volume name.
)

But I get this error:

'wmic' is not recognized as an internal or external command, operable program or batch file.

I ensured that Windows Management Instrumenation service is running. What else could be wrong?

Tomáš Zato
  • 4,282
  • 14
  • 48
  • 77

4 Answers4

22

This indicates that the wmic utility's directory is not found on your PATH. Open the advanced System Properties window (you can open the System page with Windows+Pause/Break) and on the Advanced tab, click Environment Variables. In the section for system variables, find PATH (or any capitalization thereof). Add this entry to it:

%SystemRoot%\System32\Wbem

Note that entries are delimited by semicolons.

Ben N
  • 40,045
  • 17
  • 140
  • 181
1

In my case, I had %SystemRoot%\System32\Wbem on the path already, but a recent USB device driver I installed additionally added C:\Windows\System32 to the end of my path, and this stopped Windows from finding the wmic command. When I removed the trailing C:\Windows\System32 from the path, wmic was found again.

AndrWeisR
  • 111
  • 3
0

When I was using C:\Windows\System32 in the path, I was getting the same warning while installing Tails operating system on an USB stick.

When I change this to: %SystemRoot%\System32\Wbem, everything gets sorted and the warning is gone.

zx485
  • 2,170
  • 11
  • 17
  • 24
0

If you're using Windows 11, Microsoft has removed WMIC from the latest Insider builds.

Instead, you should now use Powershell commands.

To list all WMI Powershell commands, you can run Get-Command -Noun WMI*.