.cmdファイルと.batファイルの違いは何ですか?


回答:



11

それぞれに使用されるコマンド言語には意味的な違いがあり.batます(ファイルは互換バージョンを取得します)。これらのいくつかは、このスクリプトでここから説明できます

@echo off&setlocal ENABLEEXTENSIONS
call :func&&echo/I'm a cmd||echo/I'm a bat
goto :EOF

:func
md;2>nul
set var=1

基本的に、.cmdファイルはMSコマンド言語の現在のよりセクシーなバージョンを取得するため、クールな子供たちはファイルを使用します。


2
<3難読化されたcmdスクリプト:)
grawity 2009年

うん!私は訂正します。CMD.EXEの動作を以前は知りませんでした。
エヴァン・アンダーソン

6

ウィキペディアによると:

.bat:Microsoftがバッチファイルに使用する最初の拡張子。この拡張機能は、MS-DOSおよびMicrosoft Windowsのほとんどのバージョンを含む、ほとんどのMicrosoftオペレーティングシステムで実行できます。

.cmd:新しい.cmd拡張子は、Windows NTベースのシステムでは「Windows NTコマンドスクリプト」として説明されており、.bat拡張子ではなく.cmd拡張子を使用すると、以前のバージョンのWindowsがどのようにCOMMAND.COMスタイルファイルのコマンドを間違えようとせず、コマンド拡張機能がないために新しいスタイルコマンドを実行できず、スクリプトが部分的にしか実行されないため、破損する可能性があります例:ファイルのコピーが成功したかどうかの確認に失敗してから、元のファイルを削除します)。

.cmdファイルと.batファイルの処理の唯一の既知の違いは、.cmdファイルでは、コマンド拡張機能(コマンド拡張機能が有効な場合)の影響を受けるコマンドが成功してもERRORLEVEL変数が変化するのに対して、.batファイルではERRORLEVEL変数エラーが発生した場合にのみ変更されます。

お役に立てれば。


1

.batは古いDOS command.comのスクリプトであるのに対し、.cmdはWindows NTのcmd.exeのスクリプトであるため、理論的には.cmdの方が「真」です:最後のスクリプトはスクリプトが少し改善されています。Linuxで/ bin / shまたは/ bin / bashを書くように(shは実際にはbashであるディストリビューションを意味します)、実際には通常は両方が同じです


0

OS / 2で使用される.cmd形式を最初に見ました。DOSの用語で考えている場合、それはステロイドの.batファイルのようなものです。.batファイルは、DOSタイプのOSで最初に導入されました。高度な機能を使い始める場合を除き、構文の多くは似ています。また、.cmdファイルは16ビット環境(win98)では機能しない可能性がありますが、.batファイルはおそらくすべての環境で機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.