Tas'ka Опубликовано 8 апреля, 2004 Жалоба Поделиться Опубликовано 8 апреля, 2004 Вот задали сделать курсовую :) надо написать системный файл ;) может кто подскажет где можно почитать по этому поводу <_< или подскажите как можно вывести полное название дня недели Ссылка на комментарий Поделиться на другие сайты Поделиться
Ray Опубликовано 8 апреля, 2004 Жалоба Поделиться Опубликовано 8 апреля, 2004 Э-э-э... А можно слегка поподробнее? Что значит "написать системный файл" в терминологии твоей курсовой? И куда и с помощью чего надо вывести полное название дня недели? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 8 апреля, 2004 Жалоба Поделиться Опубликовано 8 апреля, 2004 Tas'ka надо написать системный файл Действительно, непонятно. Если только это, нет проблем. Создаем текстовый файл с любым содержанием или без такового, называем MSDOS.SYS и имеем системный файл MS-DOS. Своим наличием служит для совместимости со старыми программами. Содержание в последних версиях MS-DOS не используется и значения не имеет Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 8 апреля, 2004 Автор Жалоба Поделиться Опубликовано 8 апреля, 2004 ой извените я имела ввиду командные файлы....с расширением *.cmd <_< Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 9 апреля, 2004 Жалоба Поделиться Опубликовано 9 апреля, 2004 Tas'ka Что почитать? Выбираешь в меню Windows пункт Run, набираешь hh ntcmds.chm и читаешь справку по командам. Вот насчет вывода полного названия дня недели не совсем понятно. Рассчитать его и, скажем, в Бейсике не очень просто, хотя там я бы это сделал, а вот в командном интерпретаторе получить составляющие даты, по ним рассчитать номер дня недели и вывести соответствующее слово - имхо, нет там для первых двух подзадач таких средств. Лучше уточни все-таки, что именно тебе было задано. Просто командный файл - пожалуйста: строка @echo Hello! выводит, например, строку Hello! , вот уже простейший командный файл. Ссылка на комментарий Поделиться на другие сайты Поделиться
grigon Опубликовано 9 апреля, 2004 Жалоба Поделиться Опубликовано 9 апреля, 2004 Тролль Ну, если *.cmd, то ось - NT или OS/2, скорее всего NT. :) А там система команд более продвинутая... В любом случае: D:\>date <nulТекущая дата: Пт 09.04.2004 И если "Пт" - это пятница... :) то... с уважением. Ссылка на комментарий Поделиться на другие сайты Поделиться
grigon Опубликовано 9 апреля, 2004 Жалоба Поделиться Опубликовано 9 апреля, 2004 извиняюсь. Tas'ka имхо, так. сам обязательно! разберись с кодом и допиши для остальных дней. учти, кириллица должна быть ср866 Неплохо бы предварительно проверять наличие %temp%\temp.tmp если есть такой - использовать temp1(2, 345...).tmp (инкремент - с помощью команды SET /A, например) Почитать - есть толковая книжка: Андрей Попов, "Командные файлы и сценарии WSH" REM weekday.cmd@ECHO OFFDATE > %temp%\temp.tmp <nulREM .........................FIND "Пт" %temp%\temp.tmp > NULIF ERRORLEVEL == 0 GOTO DAY5REM .........................FIND "Вс" %temp%\temp.tmp > NULIF ERRORLEVEL == 0 GOTO DAY7:DAY5ECHO ПятницаGOTO EXITREM .........................:DAY7ECHO ВоскресеньеGOTO EXIT:EXITDEL %temp%\temp.tmp с уважением. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 22 апреля, 2004 Автор Жалоба Поделиться Опубликовано 22 апреля, 2004 grigon мне надо что бы я с сама вводила дату...а он мне выдовал день недели... ;) что такоу REM.............................??????????? Ссылка на комментарий Поделиться на другие сайты Поделиться
Old Man Опубликовано 22 апреля, 2004 Жалоба Поделиться Опубликовано 22 апреля, 2004 REM.............................??????????? Это Remark - примечание, комментарий. Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 22 апреля, 2004 Жалоба Поделиться Опубликовано 22 апреля, 2004 (изменено) Tas'ka Remark - примечание, комментарий ... и если после REM ничего нет, то это знак вертикального пробела :: Еще можно двойное двоеточие использовать как комментарий А у вас в курсовой нельзя к *.cmd в качестве temp-файла WSH прикручивать? Вот такая конструкция запросто на консоль будет название дня недели передавать. В XP у меня по крайней мере работает, попробовал только что : @echo off echo wscript.echo Inputbox("Write date",":o)", Date)>tmp.vbs for /f "delims=" %%a in ( 'cscript //nologo tmp.vbs') do set yourdate=%%a del tmp.vbs echo %yourdate% echo wscript.echo WeekDayName(WeekDay("%yourdate%"))>temp.vbs for /f "delims=" %%a in ( 'cscript //nologo temp.vbs') do set weekday=%%a del temp.vbs echo %weekday% pause grigon "Командные файлы и сценарии WSH" А ты не знаешь случаем, в сети ее найти можно? Или только покупать? Мне уже раза три наверно советовали приобрести книжку Андрея Попова, только название "Windows Script Host для Windows 2000/XP". Я ее тоже не нашел пока в электронном виде :D пункт Run, набираешь hh ntcmds.chm и читаешь справку У меня так не работает почему-то. Только когда создал ярлык и написал в свойствах c:\windows\hh.exe c:\windows\Help\ntcmds.chm::/ntcmds.htm смог начать читать справку Изменено 22 апреля, 2004 пользователем Premium Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 апреля, 2004 Жалоба Поделиться Опубликовано 23 апреля, 2004 (изменено) Premium пункт Run, набираешь hh ntcmds.chm и читаешь справку У меня так не работает почему-то. Только когда создал ярлык и написал в свойствах c:\windows\hh.exe c:\windows\Help\ntcmds.chm::/ntcmds.htm смог начать читать справку Хм, не знаю. У меня так работает... Чудны дела твои, Билл... :( Можно и прямо кликнуть по ntcmds.chm, найдя его поиском или перейдя в его папку. Конечно, и ярлык работает, причем просто с c:\windows\Help\ntcmds.chmА гибрид из командного файла и скриптов любопытный получился. Правда, к тому же и странный... Нечто вроде кентавра. Вообще задача не для тренинга по командным файлам, а для олимпиады по DOS... Изменено 23 апреля, 2004 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 23 апреля, 2004 Жалоба Поделиться Опубликовано 23 апреля, 2004 Можно и прямо кликнуть по ntcmds.chm, найдя его поиском или перейдя в его папку. Конечно, и ярлык работает, причем просто с c:\windows\Help\ntcmds.chm Неа, не знаю почему, но у меня и прямой клик по ntcmds.chm и ярлык "c:\windows\Help\ntcmds.chm" открывают только окошко, где на пустом белом фоне сиротливо написано:Разделы данного файла справки интегрированы в центр справки и поддержки. Чтобы просмотреть эти разделы, нажмите кнопку Пуск и выберите команду Справка и поддержка и все. А гибрид из командного файла и скриптов любопытный получился. Правда, к тому же и странный...Дык работает как просили, любую дату вводишь - название дня недели получаешь ... :(:):) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 26 апреля, 2004 Автор Жалоба Поделиться Опубликовано 26 апреля, 2004 А как можно вывести список процессов упорядоченных по командной строке??? Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 27 апреля, 2004 Жалоба Поделиться Опубликовано 27 апреля, 2004 Каких процессов? Которые в данный момент запущены на компе? В XP Prof для этого специальная команда есть, tasklist. У меня Home, как-то буквально один раз нужно было получить все запущенные приложения в список, так я сторонней утилиткой, работающей из ком. строки воспользовался, pslist с sysinternals.com. Но если можно этот список получить встроенными средствами NT\2000\XP Home, то я бы сам с удовольствием посмотрел, как это делается. Могу в принципе еще одного кентавра (в смысле - смесь с WSH) подкинуть, там совсем коротенький код будет, но этож не выход, у ваших преподавателей такие фокусы не прокатывают наверно? Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 29 апреля, 2004 Автор Жалоба Поделиться Опубликовано 29 апреля, 2004 Есть файл :) ....а там список процессов :) ...которые надо упорядочить по командной строке :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 29 апреля, 2004 Жалоба Поделиться Опубликовано 29 апреля, 2004 Tas'ka Не используй, пожалуйста, таких жутких выражений: "упорядочить по командной строке". Очень трудно понять, что имелось в виду Выпив чашку кофе и посмотрев на ее дно, я решил, что нужна команда, упорядочивающая строки в текстовом файле по алфавиту и записывающая результат в новый файл. SORT < C:\IN.TXT > C:\OUT.TXT Такая команда возьмет содержание файла IN.TXT, находящегося в корневом каталоге диска C:, переупорядочит его строки в алфавитном порядке и направит их в созданный ею файл OUT.TXT в этом же каталоге. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 9 мая, 2004 Автор Жалоба Поделиться Опубликовано 9 мая, 2004 Premium <_< А почему если вводить не правельную дату напримаер: 21.21.2004.... он сначало говорит об ошибке...но потом все равно говорит, что это четверг...и при этом...при любой неверное дате...будет четверг :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 9 мая, 2004 Автор Жалоба Поделиться Опубликовано 9 мая, 2004 А есть какой-нибудь вариант без WSH? :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 9 мая, 2004 Жалоба Поделиться Опубликовано 9 мая, 2004 (изменено) А почему если вводить не правельную датуА проверку на валидность введенной даты не заказывали, воспитанные люди знают, что 21 месяц не бывает ... :P :) У меня он выдает ошибку string только, никакого четверга. Я вообще то так просто привел этот пример гибрида, шутки ради. WSH на несколько порядков больше имеет возможностей, чем стандартные пакетные файлы, их и сравнивать то некорректно даже как-то :) Проверку даты на vbscript сделать недолго, разбить дату на день-месяц-год и если введенный месяц меньше 1 или больше 12 то msgbox "Сам дурак" и конец скрипта :) Количество дней во любом месяце любого года можно проверить вот так: msgbox DM(2004, 05) Function DM(yr, dy) DM = day(dateserial(yr,dy+1,0)) End Function Файл *.vbs с таким содержанием выдаст тебе например, сколько дней в мае 2004 :) Но этож все ерунда, к пакетным файлам никакого отношения не имеющая. :) На какой операционке то у вас хоть проверять будут эти *.cmd? Потому что в Win2000 сразу после установки у меня по умолчанию команда: date /t выдает, что сегодня: Вс 09.05.2004 , то есть можно попробовать, как grigon советовал , а в XP у меня на компе никакого "Вс" и впомине нет, date /t выводит только дату, 09.05.2004. Это зависит от того, что в Панель управления-Язык и региональные стандарты, стоит по умолчанию в качестве формата краткой даты, если ddd dd.MM.yyyy - то будет показывать день недели, если просто dd.MM.yyyy - то только дату. А какие настройки у ваших там преподавателей в институте? Изменено 9 мая, 2004 пользователем Premium Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 9 мая, 2004 Автор Жалоба Поделиться Опубликовано 9 мая, 2004 У нас в универе стоит ... 2000.... но блин....одна команда не прокатит, надо что бы я сами вводили дату.... а Date - выдает сегоднешнюю дату :) Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 9 мая, 2004 Жалоба Поделиться Опубликовано 9 мая, 2004 А куда вводили то? В ком.строке Inputbox нету ... Может им нужен *.cmd , который надо запускать с параметром из ком. строки, вроде lalala.cmd %1, где вместо %1 дату вставлять? Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 11 мая, 2004 Автор Жалоба Поделиться Опубликовано 11 мая, 2004 ну надо сделать типа.... set\p a=Введите дату и тогда в командной строке можно вводить... <_< Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 11 мая, 2004 Жалоба Поделиться Опубликовано 11 мая, 2004 Ввести-то дату (или что угодно) можно без проблем. @echo off copy con C:\test.txt >nul REM теперь можно ввести одну или, при желании, несколько строк, ввод заканчивается нажатиями клавиш F6 и Enter REM введенное будет в файле C:\test.txt date <C:\test.txt Проверку на ошибки ввода сама команда DATE сделает, когда получит данные из test.txt Далее поиск и вывод дня недели по способу grigon. Дата, конечно, съедет, но воспользуюсь доводом Premium - никто не требовал, чтобы после выполнения программы дата сохранилась. После нас хоть потоп! Его, правда, можно избежать, но тут парой строк не обойдешься, это масса дополнительной работы. Впрочем, в конце командного файла временный файл полезно уничтожить del C:\test.txt Ссылка на комментарий Поделиться на другие сайты Поделиться
Premium Опубликовано 11 мая, 2004 Жалоба Поделиться Опубликовано 11 мая, 2004 Тролль Респект тебе, не знал я про такой способ ввода, с copy con . Никогда правда и не задавался целью узнать, батники обычно я если и делаю по своим надобностям изредка, то так, чтобы без всякого вмешательства со стороны юзера все работало. Тогда я внесу свою лепту, совершенно случайно я знаю, как исправить дату обратно именно парой строк. Я когда-то интересу ради искал возможность разбить дату в батнике на день-месяц-год(как в vbscript), чтобы при бэкапе с помощью makecab.exe создавать архивы с названием вроде backup_DDMM.cab (DD-день, MM-месяц). Нашел. В общем Tas'ke в начале батника (ну я огульно так все пакетные файлы называю, и *.bat и *.cmd) надо просто вывести текущую дату в файл C:\today.txt, дату из файла обьявить переменной, потом в конце батника вернуть ее на место: @echo off date /t >C:\today.txt for /f "tokens=1-4 delims=. " %%i, in ('more C:\today.txt') do set todaydate=%%j.%%k.%%l REM Ну для отладки можно вывести на экран, что получилось echo %todaydate% REM Тут делаем всю работу, меняем дату и узнаем день недели REM В конце возвращаем сегодняшнюю дату на место командой date date %todaydate% Но только именно в таком виде это все работает при формате короткой даты ddd dd.MM.yyyy , я почему и спрашивал Tas'kу про это. В файле C:\today.txt будет тогда записано Ср 12.05.2004 (что соответствует %%i %%j.%%k.%%l), если формат и разделители другие, то и буквы(i,j,k,l) тогда сдвинутся и будут иметь другие значения. А можно и не выводить в файл(это для самоуспокоения ), а прямо в *.cmd получить в качестве переменной сегодняшние dd.MM.yyyy , просто вместо ('more C:\today.txt') написать ('echo %date%') Ссылка на комментарий Поделиться на другие сайты Поделиться
Tas'ka Опубликовано 11 мая, 2004 Автор Жалоба Поделиться Опубликовано 11 мая, 2004 Тролль У меня просто наглым образом меняет дату сегоднешную на ту которую я ввела <_< и дни недели просто игнорирует Premium ласково говорит "Внезапное появление in" Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения