2015-01-01 2 views
1

так в этом кодеПакет: как я могу пропустить его, если нет ввода?

:chat 
cls 
findstr /v "sdlkfjsdlkfs98dfu9sd8f6ysd954" \\Cap\FileServer\Recive\chatroom.chatfile 
echo. 
echo ---------------------------------------------------------- 
echo. 
color 0b 

goto chat1 

:chat1 
ping localhost -n 3 >nul 
set /p text=Text: 
echo %name% : %text% >>\\Cap\FileServer\Recive\chatroom.chatfile 
goto chat 

Так мне было интересно, если я могу сделать это не ждать Текст: и перейти к обновив файл чата, если нет входного сигнала.

ответ

1

Вы не можете сделать это с помощью Batch, как только вы запросили пользователя, выполнение будет ждать ввода ввода.

Возможно, в качестве обходного пути, вы можете «обновить», когда пустой вход получен:

:chat 
cls 
findstr /v "sdlkfjsdlkfs98dfu9sd8f6ysd954" \\Cap\FileServer\Recive\chatroom.chatfile 
echo. 
echo ---------------------------------------------------------- 
echo. 
color 0b 

goto chat1 

:chat1 
REM Reset any existing text value. 
set "text=" 

ping localhost -n 3 >nul 
set /p text=Text: 

REM Check for input. 
IF NOT "%text%"=="" (
    REM Input was given. Write it to the file. 
    echo %name% : %text% >>\\Cap\FileServer\Recive\chatroom.chatfile 
) 

goto chat 

Так в приведенном выше, если пользователь просто нажимает Enter в ответ на запрос, ничего не будет записано в chatfile и цикл начнется.

+0

С этим, Он просто говорит последнее, что человек говорит, когда вы нажимаете enter – John

+0

@John - Правильно, он вообще не обновит файл чата и просто перечитает файл. Я предполагаю, что кто-то обновляет этот файл на другой машине, поэтому, если они сделали обновление, вы увидите его (опять же, не вводя ничего для принудительного обновления). –

+0

Ohh gotcha thanks – John

Смежные вопросы