Dio*_*ogo 5 windows command-line shell-script batch-file
假设我的 shell 脚本完全基于 DOS 命令(dir、cd 等而不是 VBS 或 PowerShell 命令),使用 .cmd 或 .bat 扩展名作为它的名称会改变什么吗?我的意思是,如果使用 .cmd 或 .bat 扩展名,它将以相同的方式和相同的解释器执行?
stackoverflow有一个写得很好的答案。
所以,不,它不会影响你的命令。只是 ERRORLEVEL 的处理有所不同。在cmd中,无论是否有错误,都会设置ERRORLEVEL。
只有出现错误时,Bat 才会执行此操作。
来自维基百科:
维基百科的新引用
.cmd 和 .bat 文件执行之间唯一已知的区别是,在 .cmd 文件中,即使是受命令扩展影响的成功命令(启用命令扩展时),ERRORLEVEL 变量也会发生变化,而在 .bat 文件中,ERRORLEVEL 变量也会发生变化。仅在发生错误时更改。
上面引用的维基百科的来源实际上是基于这个新闻组的帖子。
就 CMD.EXE 而言,.CMD 和 .BAT 之间的区别是: 启用扩展后,.CMD 文件中的 PATH/APPEND/PROMPT/SET/ASSOC 将设置 ERRORLEVEL,无论错误如何。.BAT 仅在发生错误时设置 ERRORLEVEL。
值得注意的是,它在差异方面比维基百科文本更具限制性,但考虑到马克·兹比科夫斯基本人的事实,也值得明确提及——恕我直言,这给了巨大的可信度奖励。
| 归档时间: |
|
| 查看次数: |
2703 次 |
| 最近记录: |