IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> *.bat
сообщение
Сообщение #1


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Добрый день!
Вот надо написать несколько батников, а я их в жизни не писал... И что то нечего не получается sad.gif
Скажем, есть задание:
выводить на экран количество дней до 20.01.2008, если день наступил сообщить об этом...

в часности интересует вопрос переменных и процедур...

помогите...

зы
если ошибся разделом, перенисите куда надо...
ззы
моя <<попытка>> решения в прекреплённом файле(в названии файла удалите <<.txt>>)
Прикрепленный файл  b.bat.txt ( 521 байт ) Кол-во скачиваний: 327


Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Вот тут - все, что может понадобиться для работы с датами/временем из BAT-файлов: Date and Time using

Посмотри, как это делается там, попробуй написать свое задание...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


вот моя новая попытка... подобный код можна не писать вручную, а генирить другой программкой...
Код
@echo off

IF %Date%==20.02.2008 (
    echo 0
    goto end
)

IF %Date%==19.02.2008 (
    echo 1
    goto end
)

IF %Date%==18.02.2008 (
    echo 2
    goto end
)

IF %Date%==17.02.2008 (
    echo 3
    goto end
)

IF %Date%==16.02.2008 (
    echo 4
    goto end
)

:end

однако, если выводить скриптом
Код
echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("твой_текст"); >> %temp%\mes.js
start %temp%\mes.js
deltree /y %temp%\mes.js
возникают проблеммыsad.gif

что делать?

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
возникают проблеммы
Какие проблемы? Ты о том, что deltree - не будет распознаваться? Или о том, что не выводится то, что нужно?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 16.02.2008 22:48) *
Какие проблемы?
я не понимаю что происходит..
Код
@echo off

echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("text1"); >> %temp%\mes.js
start %temp%\mes.js
deltree /y %temp%\mes.js

rem сегодня 17.02.2008
IF %Date%==16.02.2008 (
    echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
    echo WSHShell.Popup("text2"); >> %temp%\mes.js
    start %temp%\mes.js
    deltree /y %temp%\mes.js
)

приводит к появлению двух сообщений text1 и двух text2, а хотелось бы одно text1, так как во втором случае условие не выполняется(?).. да и в консоли появляются следующие собщения "deltree" не является внутреней или внешней командой, исполнеемой программой или пакетным файлом


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Смотри:
@echo off

echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js
echo WSHShell.Popup("text1"); >> %temp%\mes.js
rem Запускаем скрипт и ждем его завершения
start /wait %temp%\mes.js
rem И только потом удаляем файл
del %temp%\mes.js

rem Здесь - берем сегодняшнюю дату: из %date% 10 символов, начиная с четвертого
set myToday=%date:~4,10%
IF "%myToday%"=="02/16/2008" (
rem Если встречается закрывающаяся скобка - ее надо экранировать: ^)
echo var WSHShell = WScript.CreateObject("WScript.Shell"^); > %temp%\mes.js
rem Здесь - тоже экранируем
echo WSHShell.Popup("text2"^); >> %temp%\mes.js
start /wait %temp%\mes.js
del %temp%\mes.js
)


Добавлено через 6 мин.
Заметь, формат даты должен совпадать с системным...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


спасибо!

>>Заметь, формат даты должен совпадать с системным...
вот... можно ли написать скрипт который работал бы на всех машинах(под управлением win XP) корректно? Так у меня результатом echo %date% будет 17.02.2008. Или где про это можна почитать?

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Вот тут лежит пример батника, который читает информацию из реестра, и разбивает системную дату на День, Месяц и Год... Посмотри, как это делается...

Ссылка

Вроде автор говорил, что это должно работать на любой NT-системе, за исключением NT4...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 17.02.2008 22:14) *
Вот тут лежит пример батника
спасибо... будем смотретьsmile.gif


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Добрый день!
А какие средства отладки существует для обработки батников? Хотелось бы хотя бы узнавать строку в которой происходит ошибка....

и еще где можна почитать подробней об экранировании скобок?

заранее благодарен.

Сообщение отредактировано: compiler -


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


отлаженный батник первой строкой имеет:
@echo off
неотлаженный - еще не имеет.
Других средств отладки не предусмотрено.
Да, в принципе, для интерпретатора они и не нужны.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата
и еще где можна почитать подробней об экранировании скобок?
Вообще неплохо было бы прочитать Урок bat-аники yes2.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Человек
*****

Группа: Пользователи
Сообщений: 1 050
Пол: Мужской
Реальное имя: Станислав

Репутация: -  3  +


Цитата(volvo @ 19.02.2008 20:00) *
Вообще неплохо было бы прочитать Урок bat-аники yes2.gif
спасибо, будем читать... ух не люблю я биологию;)
Цитата
Других средств отладки не предусмотрено.
Да, в принципе, для интерпретатора они и не нужны.
другим может они и не нужны, но мне, на данном этапе, не очень приятно расставлять echo some_text что б увидить где остановился скрипт... в любом случае теперь смогу отличить отлаженный _чужой_ батник от не отлаженного...


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Прежде чем делать выводы, запусти батник без echo off. Сразу поймешь в чем дело. ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.01.2021 1:16
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name