Para sistemas Windows, a extensão “.bat” ou “.cmd” fará alguma diferença para o meu script?

4

Assumindo que meu script de shell é inteiramente baseado em comandos do DOS (dir, cd, etc e não em comandos VBS ou PowerShell), o uso da extensão .cmd ou .bat para seu nome mudará alguma coisa? Quer dizer, ele será executado da mesma maneira e com o mesmo intérprete se estiver usando a extensão .cmd ou .bat?

    
por Diogo 09.10.2013 / 19:21

1 resposta

2

Existe uma resposta bem escrita de stackoverflow .

Portanto, não, isso não afeta seus comandos. A manipulação do ERRORLEVEL é apenas diferente. Em cmd, o ERRORLEVEL será definido independentemente de haver um erro ou não.

Bat só faz, se houver um erro.

From Wikipedia:

New Quote from Wikipedia

The only known difference between .cmd and .bat file execution is that in a .cmd file the ERRORLEVEL variable changes even on a successful command that is affected by Command Extensions (when Command Extensions are enabled), whereas in .bat files the ERRORLEVEL variable changes only upon errors.

     

A origem da citação da Wikipedia acima é, na verdade, baseada em este   grupo de notícias   postagem .

     

The differences between .CMD and .BAT as far as CMD.EXE is concerned are: With extensions enabled, PATH/APPEND/PROMPT/SET/ASSOC in .CMD files will set ERRORLEVEL regardless of error. .BAT sets ERRORLEVEL only on errors.

     

Note apenas que é um pouco mais restritivo em relação às diferenças,   do que o texto da Wikipedia, mas também vale a pena ser explicitamente mencionado,   dado o fato Mark   Zbikowski -   que dá um enorme bônus de credibilidade IMHO.

    
por 09.10.2013 / 19:25