有人知道Windows命令行中与 $?
相同的内容吗?有没有?
编辑: $?
是UNIX变量,它保存最后一个进程的退出代码
答案 0 :(得分:11)
您想要检查%ERRORLEVEL%
的值。
答案 1 :(得分:9)
%ERRORLEVEL%返回错误代码 最近使用的命令。非 零值通常表示错误。
http://technet.microsoft.com/en-us/library/bb490954.aspx
$? 如果上次操作成功则包含True,否则包含False。和
$ LASTEXITCODE 包含最后一次Win32可执行文件执行的退出代码。
http://blogs.msdn.com/powershell/archive/2006/09/15/ErrorLevel-equivalent.aspx
$?扩展到退出状态代码 最近执行的前景 程序
答案 2 :(得分:2)
很抱歉疏通旧线程,但值得注意的是%ERRORLEVEL%不会通过每个命令重置。在几行后续 - 并且成功 - 批处理代码之后,您仍然可以为errorlevel测试“肯定”。
您可以使用ver
将errorlevel可靠地重置为干净状态。此示例适用于UnxUtils以获取更多Linux-ish目录列表。重置可能在最后看起来无关紧要,但如果我需要从另一个调用此脚本则不行。
:------------------------------------------------------------------------------
: ll.bat - batch doing its best to emulate UNIX
: Using UnxUtils when available, it's nearly unix.
:------------------------------------------------------------------------------
: ll.bat - long list: batch doing its best to emulate UNIX
: ------------------------------------
: zedmelon, designer, 2005 | freeware
:------------------------------------------------------------------------------
@echo off
setlocal
: use the UnxUtil ls.exe if it is in the path
ls.exe -laF %1 2>nul
if errorlevel 1 (
echo.
echo ----- ls, DOS-style, as no ls.exe was found in the path -----
echo.
dir /q %1
)
: reset errorlevel
ver>nul
endlocal
随意使用它。如果您还没有看过UnxUtils,请查看'em out。
答案 3 :(得分:1)
@echo off
run_some_command
if errorlevel 2 goto this
if errorlevel 1 goto that
goto end
:this
echo This
goto end
:that
echo That
goto end
:end
答案 4 :(得分:0)
%ERRORLEVEL%