Помощь - Поиск - Пользователи - Календарь
Полная версия: *.bat
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
compiler
Добрый день!
Вот надо написать несколько батников, а я их в жизни не писал... И что то нечего не получается sad.gif
Скажем, есть задание:
выводить на экран количество дней до 20.01.2008, если день наступил сообщить об этом...

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

помогите...

зы
если ошибся разделом, перенисите куда надо...
ззы
моя <<попытка>> решения в прекреплённом файле(в названии файла удалите <<.txt>>)
Нажмите для просмотра прикрепленного файла
volvo
Вот тут - все, что может понадобиться для работы с датами/временем из BAT-файлов: Date and Time using

Посмотри, как это делается там, попробуй написать свое задание...
compiler
вот моя новая попытка... подобный код можна не писать вручную, а генирить другой программкой...
Код
@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

что делать?
volvo
Цитата
возникают проблеммы
Какие проблемы? Ты о том, что deltree - не будет распознаваться? Или о том, что не выводится то, что нужно?
compiler
Цитата(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" не является внутреней или внешней командой, исполнеемой программой или пакетным файлом
volvo
Смотри:
@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 мин.
Заметь, формат даты должен совпадать с системным...
compiler
спасибо!

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

Ссылка

Вроде автор говорил, что это должно работать на любой NT-системе, за исключением NT4...
compiler
Цитата(volvo @ 17.02.2008 22:14) *
Вот тут лежит пример батника
спасибо... будем смотретьsmile.gif
compiler
Добрый день!
А какие средства отладки существует для обработки батников? Хотелось бы хотя бы узнавать строку в которой происходит ошибка....

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

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