jpm*_*ins 6 windows unix batch-file error-handling
有谁知道是否有一个 Windows 批处理文件相当于 Unix Stop on Error "#!/bin/sh -e"?
考虑到 Windows 中 shell 的设计(从 MS-DOS 继承),确实没有什么好方法可以做你想做的事。
一般来说,即使遇到错误,CMD.EXE 和 COMMAND.COM 也会继续执行批处理文件。检查errorlevel您调用的程序是关于错误处理的全部内容。大多数格式错误的 shell 命令将被视为要执行的程序(并且希望无论执行什么程序都不会做坏事)。
类似if exists或这样的结构的语法错误for将导致 shell 停止执行脚本。考虑:
@echo off
if not exits c:\foo.txt echo C:\foo.txt does not exist
echo Continuing on
Run Code Online (Sandbox Code Playgroud)
你永远不会看到,Continuing on因为解释器会用错误轰炸c:\foo.txt was unexpected at this time.。不幸的是,没有办法像 bash 那样捕获和处理错误。当您遇到这样的错误时,脚本会停止运行。
通常,Windows shell 中的错误处理非常简单。
| 归档时间: |
|
| 查看次数: |
13809 次 |
| 最近记录: |