|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] If внутри If |
|
|
CMD/BAT - [решено] If внутри If
|
Новый участник Сообщения: 21 |
Профиль | Отправить PM | Цитировать Помогите, пожалуйста. Нужно следующее: при отсутствии в месяце и дне файла нулей и единиц присвоить переменной md две цифры текущего месяца и две цифры текущего дня
Echo Off && Cls Setlocal EnableExtensions EnableDelayedExpansion Echo Сегодня %date% Echo %date:~3,2% | findstr "01 02 03 04 05 06 07 08 09" > nul If !ErrorLevel!==1 (Echo %date:~0,2% | findstr "01 02 03 04 05 06 07 08 09" > nul If !ErorLevel!==1 (Set md=%mdd:~3,2%%mdd:~0,2%) ) Echo %md% Endlocal Ругается, что вывод команд на экран (Echo) отключен. Пытался конструкции, типа %date:~3,2% присваивать переменным и затем производить действия с переменными - та же петрушка |
|
Отправлено: 14:05, 01-02-2012 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать могли бы уже освоить тег code
|
Отправлено: 14:36, 01-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать ошибся, только при отсутствии нулей
|
Отправлено: 15:28, 01-02-2012 | #3 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата Доктор Ливси:
Может, при отсутствии ведущих нулей? Кстати, их может и не быть – зависит от настроек даты А что такое ErorLevel и mdd ? Повнимательнее нельзя? Echo Off && Cls Setlocal EnableExtensions EnableDelayedExpansion Echo Сегодня %date% Echo %date:~3,2% | findstr "01 02 03 04 05 06 07 08 09" > nul If !ErrorLevel!==1 (Echo %date:~0,2% | findstr "01 02 03 04 05 06 07 08 09" > nul If !ErrorLevel!==1 (Set md=%date:~3,2%%date:~0,2%) ) Echo.%md% Endlocal |
|
Отправлено: 18:34, 01-02-2012 | #4 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Да, при отсутствии ведущих нулей
Каюсь, невнимателен. Но результат получился тот же. Отрабатывает Цитата kiripanda:
|
||
Отправлено: 06:53, 02-02-2012 | #5 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Попробую Изложить. Допустим, сегодня десятое октоября (т. е. в формате месяц-день будет 1010)
Строкой Цитата Доктор Ливси:
Цитата Доктор Ливси:
Поэтому с помощью Цитата Доктор Ливси:
Цитата Доктор Ливси:
Уф-ф, надеюсь, что всё понятно |
||||
Отправлено: 14:01, 02-02-2012 | #6 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:28, 02-02-2012 | #7 |
Старожил Сообщения: 352
|
Профиль | Отправить PM | Цитировать Цитата Доктор Ливси:
Цитата:
|
||
Отправлено: 17:32, 02-02-2012 | #8 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать Я вместо переменной Date использую Dt - легче отлаживать. Вот моё решение. Опять же, вы не указали какое должно быть md если условия не выполняются. Я забил это значение как xxxx. Опять же, если формат даты другой, например, DD.MM.YYYY, то 0,2 и 3,2 везде взаимно замените.
|
------- Последний раз редактировалось megaloman, 02-02-2012 в 17:49. Отправлено: 17:41, 02-02-2012 | #9 |
Старожил Сообщения: 177
|
Профиль | Отправить PM | Цитировать Извините за вторжение... я почти в теме.
ПОМОГИТЕ) @echo off :EOM SetLocal Rem _Number=Parameters Set _1=123456789 Set /P "i= ‚ўҐ¤ЁвҐ *®¬Ґа Є®¬ЇмовҐа*: " If Defined _%i% Call Start /b "%i%" ""ift.exe -b Lont"" "%%_%i%%%" > nul Endlocal goto EOM :test test.vbs > nul Пробовал так @echo off :EOM SetLocal Rem _Number=Parameters Set _1=123456789 Set /P "i= ‚ўҐ¤ЁвҐ *®¬Ґа Є®¬ЇмовҐа*: " If Defined _%i% Call Start /b "%i%" ""ift.exe -b Lont"" "%%_%i%%%" > nul if /i %i%==test goto test Endlocal goto EOM :test test.vbs > nul А надо что бы она не закрывалась а возвращалась на метку goto :EOM если ничего не ввели или ввели не правильно. попробовал ещё так @echo off :eom SetLocal Rem _Number=Parameters Set _19=00196652E984 Set /P "i= Parameters: " if /i %i%==test goto test If Defined _%i% Call Start /b "%i%" ""ift.exe -b Lont"" "%%_%i%%%" > nul Endlocal goto eom :test test.vbs > nul Endlocal goto eom Ну если что то не правильно то поправите. С меня "благодарность") |
Отправлено: 17:43, 02-02-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Загрузка - Суть проблемы внутри | dock3r | Тест-форум | 0 | 09-03-2010 22:51 | |
C/C++ - Задание внутри | Wurka86 | Программирование и базы данных | 1 | 25-05-2008 22:18 | |
Сортировка внутри папки | Evita | Хочу все знать | 6 | 24-08-2007 16:07 | |
Локалка внутри локалки | alnat2 | Сетевые технологии | 6 | 01-09-2006 18:02 | |
Прокся внутри локалки! | Dikii Angel | Хочу все знать | 2 | 22-01-2004 17:48 |
|