「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」エラーの対処法
コマンドプロンプトやバッチファイルにおいて、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが表示される場合の対処法です。
パスが通っていない場合
ファイルやフォルダを開いたり実行したりする場合、パスが通っていないとそれが出来ません。
「パス」(Path)とは、ファイルやフォルダの「場所、アドレス」です。例えば、「C:\AAA\BBB」等です。
Windowsは、名前のみの指定でファイルやフォルダ等の対象が実行された場合、それがどこにあるのか分かりませんので、事前に登録されたフォルダの中から、それを探して実行します(開きます)。
その探すフォルダは、「Path」という環境変数に記述されています。
新たに、ここも探して欲しいというフォルダを追加する場合、パスを通す操作を行う必要があります。
ただし、「C:\AAA\BBB.exe」のように、フルパス(場所付きの名前)で実行する場合は、上記操作を行ってパスを通す必要はありません。
Windows10でのパスの通し方は、こちらをご覧ください。
その他のWindowsの場合は、(お使いのWindowsのバージョン) + 「パス 通す」等のワードでWEB検索してみてください。「Windows11 パス 通す」等です。
特殊な意味を持つ半角記号が使われている場合
構文内において、一部の半角記号は特殊な意味を持ちます。
ファイル名、パス、文字列等に半角記号が含まれる場合は、単なる文字として認識させる為に、「"」でその文字列全体囲むか、その半角記号の直前に「^」を付ける必要があります。
例えば、フォルダを作成する「md」コマンドで、「AAA&BBB」という名前のフォルダを作成するとします。
「md AAA&BBB」という記述では、「&」が特殊な意味(改行せずに次の処理を行う)があり、正しくフォルダが作成出来ませんので、以下のように記述します。
md "AAA&BBB"
md AAA^&BBB
半角「%」が使われている場合
バッチファイルにおいて、半角「%」は特に特殊で、「"」で囲んだ中でも文字としては扱われず、特殊な意味を持ち続けます。(変数の参照)
「%」をエスケープして、単なる文字として認識させるには、「%%」と記述します。
例えば、画面に文字を表示させる「echo」コマンドで、「%」を1文字表示させたい場合は、以下のように「%」を2つ書きます。
echo %%
↓実行結果
%
コマンドプロンプトで直接入力している場合
コマンドプロンプトを起動して直接入力している場合は、「%」は基本的に文字として扱われますので、あまり意識する必要はありません。
ただ、変数名と重複する文字列を使う場合は、半角「^」を使ってエスケープする必要があります。
例えば、「%TEMP%」と表示したい場合は、「echo ^%TEMP^%」と入力します。
PowerShell用の構文である場合
その実行しようとしている記述が、コマンドプロンプトやバッチファイル用の記述ではなく、「PowerShell」用の記述である可能性もあるかと思いますので、その場合は、PowerShellで実行する必要がありますので、参考元をご確認ください。
PowerShellとは、マイクロソフトが開発したコマンドラインインターフェイスで、シェルおよびスクリプト言語です。簡単に言えば、コマンドプロンプトの高機能版です。
バッチファイルのように、テキストファイルに保存して実行したい場合は、PowerShellのスクリプトの拡張子は「ps1」ですので、「~.ps1」という感じのファイル名で保存して、そのファイルを右クリックして、「PowerShellで実行」をクリックします。
スクリプトの初回実行時には、セキュリティ上の警告が表示されるかと思います。
又、直接入力したい場合は、PowerShellを起動して、そこに直接入力してください。
(PowerShellの画面を右クリックすると、「貼りつけ」動作になります。)