4

首先,对不起,如果我对问题的描述不正确。我遇到的问题是,当我在批处理文件中运行命令时,它会打开另一个控制台窗口,在几分之一秒内显示结果,然后再次关闭。我希望在该窗口中显示命令的结果(devcon 状态),并带有“暂停”选项。

这是代码:

@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

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

当我通过命令提示符运行“devcon status [my adapter id]”时,它会返回“1 device found.... driver running”。但是,当我从批处理文件中执行此操作时,它会打开一个新窗口,该窗口在命令运行后立即关闭,不允许我看到它的结果。

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

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

4

3 回答 3

1

你不能在命令后加上“暂停”来显示输出吗?如果它忽略了暂停,那么它很可能是一个错误。如果是错误,请在每个命令后暂停,然后慢慢遍历所有内容以查找错误。

于 2013-11-12T18:06:19.273 回答
0

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

start "" /b "devcon" disable *REV_7869

我不知道defcon也不知道为什么你会得到第二个cmd窗口。

于 2013-08-20T21:53:38.033 回答
0

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

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

于 2019-06-21T13:15:26.463 回答