Po prostu ciekawy. „Fajni” ludzie w naszej firmie zawsze używają * .cmd, podczas gdy nikt nie był w stanie wyjaśnić mi różnicy.
Po prostu ciekawy. „Fajni” ludzie w naszej firmie zawsze używają * .cmd, podczas gdy nikt nie był w stanie wyjaśnić mi różnicy.
Odpowiedzi:
Istnieją różnice semantyczne w języku poleceń używanym dla każdego ( .bat
pliki uzyskują wersję kompatybilności). Niektóre z nich można zilustrować stąd :
@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
Zasadniczo .cmd
pliki otrzymują aktualną, bardziej seksowną wersję języka poleceń MS, dlatego też fajne dzieci z nich korzystają.
Według Wikipedii:
.bat: pierwsze rozszerzenie używane przez Microsoft do plików wsadowych. To rozszerzenie można uruchomić w większości systemów operacyjnych Microsoft, w tym MS-DOS i większości wersji Microsoft Windows.
.cmd: nowsze rozszerzenie .cmd jest opisywane przez systemy oparte na Windows NT jako „skrypt poleceń Windows NT” i jest pomocne, ponieważ użycie rozszerzenia .cmd zamiast rozszerzenia .bat oznacza, że wcześniejsze wersje systemu Windows nie będą wiedziały, jak to zrobić. uruchom go, aby nie próbowali pomylić poleceń z plikami stylu COMMAND.COM i nie uruchomili poleceń nowego stylu ze względu na brak rozszerzeń poleceń, co powoduje, że skrypty są uruchamiane tylko częściowo, co może okazać się szkodliwe (dla przykład; nieudane sprawdzenie udanego kopiowania pliku, a następnie usunięcie oryginału).
Jedyną znaną różnicą między przetwarzaniem plików .cmd i .bat jest to, że w pliku .cmd zmienna ERRORLEVEL zmienia się nawet w przypadku pomyślnego polecenia, na które wpływ mają rozszerzenia poleceń (gdy rozszerzenia poleceń są włączone), natomiast w plikach .bat zmienna ERRORLEVEL zmienia się tylko w przypadku błędów.
Mam nadzieję że to pomoże.
Teoretycznie .cmd jest bardziej „prawdziwy” :), ponieważ .bat jest skryptem dla starego DOS command.com, podczas gdy .cmd jest dla cmd.exe z Windows NT, ten ostatni ma nieco ulepszone skrypty. W prawdziwym życiu zwykle oba są równe, jak pisanie / bin / sh lub / bin / bash w Linuksie (oznacza to, że sh to bash)
Najpierw zobaczyłem format .cmd używany w OS / 2. Jeśli myślisz w kategoriach DOS, jest to jak plik .bat na sterydach. Pliki .bat zostały wprowadzone najpierw w systemach operacyjnych DOS typu. Wiele składni jest podobna, z wyjątkiem sytuacji, gdy zaczynasz wchodzić w zaawansowane funkcje. Ponadto plik .cmd może nie działać w środowisku 16-bitowym (win98), podczas gdy plik .bat prawdopodobnie będzie działał we wszystkich środowiskach.