批处理不会显示命令结果:关闭窗口太快也读取

时间:2013-08-20 20:55:29

标签: batch-file

首先,抱歉,如果我的问题描述已关闭。我遇到的问题是,当我在批处理文件中运行命令时,它会打开另一个控制台窗口,显示结果几分之一秒,然后再次关闭。我希望在该窗口中显示命令(devcon status)的结果,类似于“暂停”选项。

以下是代码:

@ECHO off
cls
:start
ECHO.

ECHO What would you like to do?
ECHO 1. Disable Bluetooth
ECHO 2. Enable Bluetooth
ECHO 3. Check status
ECHO 4. Quit
ECHO.

set /p choice=Type the first word of the option you want.
ECHO.

if %choice%==Disable (
    goto :DBt
) else if %choice%==Enable (
    goto :EBt
) else if %choice%==Check (
    goto :CS
) else if %choice%==Quit (
    goto :end
) else (
    echo Invalid choice.
    pause
    goto start
)

:DBt
devcon disable *REV_7869
goto end

:Ebt
devcon enable *REV_7869
goto end

:CS
devcon status *REV_7869
goto end

:end
exit

当我输入“Check”时,它会打开另一个控制台窗口,正确运行devcon status命令,但是当它有结果时立即关闭窗口。

当我通过命令提示符运行“devcon status [my adapter id]”时,它将返回“找到1个设备....驱动程序正在运行”。但是,当我从批处理文件中执行此操作时,它会打开一个新窗口,该窗口在命令运行后立即关闭,不允许我查看其结果。

在“devcon status * REV”之后添加“暂停”没有帮助解决问题。在另一个运行命令并关闭之后,它只是在原始命令窗口中输入“按任意键继续”。

所以我的问题是如何在命令运行后保持第二个窗口打开?

3 个答案:

答案 0 :(得分:1)

你能不能在命令后面加“暂停”来显示输出?如果它忽略了暂停,则很可能是一个错误。如果是一个bug,请在每个命令后放置暂停,然后慢慢浏览所有内容以查找错误。

答案 1 :(得分:0)

您可能会尝试使用start命令,而不是使用:start作为跳转标签:

start "" /b "devcon" disable *REV_7869

我不知道defcon,也不知道为什么会有第二个cmd窗口。

答案 2 :(得分:0)

devcon.exe需要提升的特权。如果您从非高架命令窗口运行脚本,则可能会收到UAC提示(“是否要运行它?”)。确认后,将打开一个新的管理员命令窗口,devcon.exe运行完成,命令窗口关闭。

从已经升高的提示符下运行脚本。然后,您将直接在控制台中看到devcon.exe的输出。