2013-08-20 100 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

你不能在命令後面加上「暫停」來顯示輸出嗎?如果它忽略了暫停,那麼它很可能是一個錯誤。如果是錯誤,請在每個命令後暫停,然後慢慢過去以找出錯誤。

相關問題