web-dev-qa-db-ja.com

「wmic」は内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません

作成したこのスクリプトを実行する必要があります。このバッチは、コンパイルされたプログラムをSTM32 Nucleoにコピーする必要があります。 wmicを使用して、Nucleoの仮想ドライブの文字をラベルで検索します。

@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.
)

しかし、私はこのエラーを受け取ります:

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

Windows Management Instrumenationサービスが実行されていることを確認しました。他に何が間違っているのでしょうか?

これは、wmicユーティリティのディレクトリがPATHに見つからないことを示しています。詳細なシステムプロパティウィンドウを開きます(システムページは Windows+Pause/Break)、[詳細設定]タブで、[環境変数]をクリックします。システム変数のセクションで、PATH(またはその任意の大文字)を見つけます。このエントリをそれに追加します。

%SystemRoot%\System32\Wbem

エントリはセミコロンで区切られていることに注意してください。

17
Ben N

私の場合、パスに%SystemRoot%\System32\Wbemがすでにありましたが、最近インストールしたUSBデバイスドライバーが追加でC:\Windows\System32をパスのendに追加し、これによりWindowsが停止しましたwmicコマンドを見つけます。末尾のC:\Windows\System32をパスから削除すると、wmicが再び見つかりました。

0
AndrWeisR