2013-08-20 39 views
3

首先,如果我对问题的描述关闭,则表示抱歉。我遇到的问题是,当我在批处理文件中运行命令时,它会打开另一个控制台窗口,显示结果几分之一秒,然后再次关闭。我想让窗口中显示的命令(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 

当我键入“检查”,这将打开另一个控制台窗口,正常运行状态DEVCON命令,但立即关闭窗口时有结果。

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

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

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

+0

您是否称过批处理文件devcon?你有另一个你称为devcon的批处理文件吗? – foxidrive

+0

不,devcon是我放在我的system32文件夹中的命令行设备管理器应用程序。我不会调用原始批处理中的任何其他批处理文件。 –

+0

我使用devcon - 我知道这个工具。但是如果你命名了批处理文件'devcon.bat'或者.cmd,那么它会执行你描述的事情。 – foxidrive

回答

0

你可以尝试使用start命令,而不是使用:start作为一个跳转标签:

start "" /b "devcon" disable *REV_7869 

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

+0

您的“开始”“/ b devcon ...”没有解决问题。另外,devcon应用程序是Microsoft下载的,就像命令行设备管理器一样。在批处理文件中,我启用和禁用蓝牙适配器。 –

+0

你可以尝试在日志文件中保存错误消息:'devcon disable * REV_7869> file.log 2>&1' – Endoro

+0

日志选项生成“file.log”,但它是空的。 –

1

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

相关问题