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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Команда choice в бат файлах (http://forum.oszone.net/showthread.php?t=96183)

Doom77 15-12-2007 18:57 697835

Команда choice в бат файлах
 
Я пишу в бат файле
choice /c:ync
pause
Пишет ошибка: choice не является внутренней или внешней командой.
Почему ошибка, делаю с примера? Как исправить?

ShaddyR 15-12-2007 19:12 697843

потому как команда choice является внешней командой, т.е. внешним файлом, который нужно положить в ту же папку, откуда предполагается ее вызвать или же в любую папку, присутствующую в списке переменной path (взять можно здесь в варианте для FreeDOS, хотя вполне вероятно будет работать и в MS-DOS).
1) Собсно, что ты хочешь реализовать с помощью данной команды?
2) Есть альтернативные команды, тем более внешние.

Doom77 15-12-2007 19:38 697855

Домашка написать бат файл. Я хочу создать менюшку чтоб можно было копировать, удалять……Какие можете посоветовать альтернативные команды?

Vadikan 15-12-2007 22:38 697939

Doom77, посмотрите тут http://oszone.net/2985#batch

ShaddyR 15-12-2007 23:40 697969

SET /P variable=[promptString]
Пример:
Код:

@echo off
SET /P promt=Удалить все к едрени фени?[Y\N]
If %promt%==Y goto del_
If %promt%==y goto del_
goto what
:del_
del /q *.*
echo Все удалено
exit
:what
SET /P promt=Удалить что-то конкретное (введите имя файла и путь либо маску файлов) ?
set /p ypromt=Вы уверены, что хотите удалить файлы "%promt%" ?! [Y\N]
If %ypromt%==Y goto del1_
If %ypromt%==y goto del1_
goto cancel
:del1_
del /q %promt%
echo Файл(ы)  %promt% удален(ы)
exit
:cancel
echo Отмена удалений
pause


Doom77 16-12-2007 00:25 697992

Пример супер!!!
А зачем писать по две одинаковые строчки? Что только из-за регистра букв?
If %promt%==Y goto del_
If %promt%==y goto del_
Что означает promt?

Doom77 16-12-2007 13:18 698133

Вложений: 1
Оцените мою первую программу :yahoo: Только сильно не смейтесь.

Admiral 16-12-2007 18:30 698232

Doom77, цвет консоли надо бы возвращать привычный пользователю, нужно озаглавить в чём суть проги в части Атрибуты, например "Установить атрибуты файлам в текущей директории", добавить в функцию установить дату (если знаешь как, аналог Unix утилиты touch). А так в принципе ничё.

ShaddyR 17-12-2007 11:32 698527

Цитата:

Цитата Doom77
А зачем писать по две одинаковые строчки? »

->
Цитата:

Цитата Doom77
из-за регистра букв »

>
Цитата:

Цитата Doom77
Что означает promt? »

закос под хороший стиль программирования - интелектуёво понятное название переменной. На самом деле данный кусок может выглядеть как
Код:

<..skipped..>
SET /P ghkgkbvytigytihg=Удалить все к едрени фени?[Y\N]
If %ghkgkbvytigytihg%==Y goto del_
If %ghkgkbvytigytihg%==y goto del_
goto <..skipped..>

у нас в свое время программеры в универе так развлекались... кучи переменных типа _1-P__u-RRtu__, _1-P__u-RRtu_1, _1-P__u-RRtu1_, _1-P__u-PRtu__.. преподы с ума сходили :)

NiOl 16-01-2008 20:21 718617

Смешной вопрос, но решения не могу найти довольно долго - раньше, в COMMAND.COM можно было отладить batch-файлы, трассируя строки. В CMD.EXE я соответсвующего ключа не нашел. Чем можно отладить батник? (Имеется ввиду софт Винды по-умолчанию)

Admiral 17-01-2008 03:05 718858

NiOl, так в комплекте ХР присутствует Command.com им и отладить с необходимым ключём.

NiOl 17-01-2008 15:04 719230

Цитата:

Цитата Admiral
NiOl, так в комплекте ХР присутствует Command.com им и отладить с необходимым ключём. »

Две новости, как обычно хорошая и очень хорошая: :search:

1: В винде действительно валяется COMMAND.COM и это действительно "com-файл"
2: Он не понимает ключ "Y"

т.е. строка command.com /y /c trace_me.bat фунциклирует также, как command.com /c trace_me.bat

Картина Репина "Приплыли". Неприятно что ни в хелпе винды, ни на мелкософте найти тему не получилось.

Admiral 17-01-2008 16:49 719301

NiOl, а файл Виндовс независим? Если да, то можно на виртуальной машине поставить Виндовс который понимает необходимый ключ.
Если к тому же файл и вне Виндовса может запускатся (нету команд Win32) тогда загрузочная дискета/флешка/диск и тестить под ним.

NiOl 17-01-2008 19:42 719431

Эх, понадеялся на MSE от офиса и на DOSbox, как простейшие альтернативы... глухо, как в танке - MSE-7 запустил CMD.EXE и ни брикпоинты ни степы не работают, а под ДОСбоксом COMMAND.COM от WinME ругается на версию операционки, а просто выставить на COMMAND.COM режим запуска в совместимом режиме тоже не помогает. Дык. Придется ставить какую-нить виртуалку... но это убогое решение. Должно же быть что-то по-элегантнее!


Время: 14:44.

Время: 14:44.
© OSzone.net 2001-