PC-More

パソコンの基本操作や使い方、便利化、カスタマイズ方法、フリーソフト等の紹介。

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

コマンドプロンプトやバッチファイルにおいて、「内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」というエラーが表示される場合の対処法です。

パスが通っていない場合

ファイルやフォルダを開いたり実行したりする場合、パスが通っていないとそれが出来ません。

「パス」(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の画面を右クリックすると、「貼りつけ」動作になります。)