Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] альтернатива choice.com (http://forum.oszone.net/showthread.php?t=128550)

SANIOK_AV 13-01-2009 15:17 1006326

альтернатива choice.com
 
Товарищи!!!
у меня такая ситуация в батнике
использую choice.com
запускаю батник под ХР
вот примерный текст батника:

@echo off
d:
cd cfg
call timer
echo .
cls
echo RESTART? Y/N?
choice /c:YN
if errorlevel 2 goto End
shutdown -r -t 0
:End


choice.com находится в текущем каталоге d:\cfg\

на моём компе всё отрабатывает нормально...
но на других совсем не так как хотелось бы...
а именно: сообщение "RESTART? Y/N?" выводится на несколько секунд, после чего исчезает и на экране мигает просто курсор без всяких [y/n]?
что ещё заметил запускаю на своём компе choice /?
хелп выводится как положено...
делаю то же самое на другом - мигает голый курсор...

я знал про такую команду как be ask ... но на других компьютерах пишет что be не является внутренней командой и т.д.

подскажите может есть какойто другой вариант для перехода по меткам...
заранее благодарен!!!

Busla 13-01-2009 16:44 1006409

А где вы взяли этот choice.com?! - в 2k и XP команды choice нет в Vista - есть - её можно взять из Resource Kit, но там choice.exe. И синтаксис у неё немножко не такой: после ключа /c должен идти пробел, не говоря о том, что вариант YN принимается по умолчанию безо всяких ключей.

Для переносимости можно воспользоваться расширенным синтаксисом командного интерпретатора - использовать set с ключом /p, не так удобно но вполне функционально.

SANIOK_AV 13-01-2009 16:52 1006413

Цитата:

Цитата Busla
Для переносимости можно воспользоваться расширенным синтаксисом командного интерпретатора - использовать set с ключом /p, не так удобно но вполне функционально. »

а не могли бы примерчик с set /p привести, если не трудно...

Admiral 13-01-2009 18:41 1006522

SANIOK_AV, cmd запрос юзера
Busla, в 2003м тоже.

Busla 13-01-2009 18:48 1006528

Код:

@echo off
set /p YN="RESTART? Y/N [Enter] "
:Loop
if -%YN% == -y goto Restart
if -%YN% == -Y goto Restart
if -%YN% == -н goto Restart
if -%YN% == -Н goto Restart
if -%YN% == -n goto End
if -%YN% == -N goto End
if -%YN% == -т goto End
if -%YN% == -Т goto End
set /p YN="Не понял - нажмите Y или N и Enter "
goto Loop
:Restart
echo Отложенная перезагрузка
:End


SANIOK_AV 14-01-2009 11:36 1007195

выдрал из w2k3 choice.exe всё отлично заработало!!!
ща поэксперементирую с set /p
Всем огромное спасибо!!!!! :oszone:


Время: 19:22.

Время: 19:22.
© OSzone.net 2001-