Версия для печати темы
Форум «Всё о Паскале» _ Ассемблер _ нужна помощь в создании программы
Автор: 1147 15.10.2009 4:05
помогите с такой задачей: нужно создать программу которая каждый день, в 6 часов утра копирует файл из папки С:\1\rew в папку D:\2\11.10.2009 и задает ему имя текущей даты
Автор: volvo 15.10.2009 4:24
Так у тебя программа что, будет постоянно в памяти висеть? Или тебя устроит вариант запуска в определенное время (скажем, через At) и выполнение определенных действий? Хотя тогда можно вообще без ассемблера, одним батником обойтись...
Автор: 1147 15.10.2009 5:11
если будет висеть в памяти, то наверное ничего страшного т.к. много ресурсов ей не нужно. но вариант с батником все же предпочтительнее.. можно поподробнее о нем?
Автор: Lapp 15.10.2009 5:16
Цитата(1147 @ 15.10.2009 2:11)
вариант с батником все же предпочтительнее.. можно поподробнее о нем?
Какая у тя Винда?
Автор: 1147 15.10.2009 5:21
ХР, SP2
Автор: Lapp 15.10.2009 5:51
Цитата(1147 @ 15.10.2009 2:21)
ХР, SP2
1. Поставь сервис Task Scheduler в автомат.
2. Задать задачу можно двумя способами:
- команда at в комстроке (help at для справки)
- в windows explorer: My Computer -> Control Panel -> Scheduled Tasks
3. батник сам напишешь?
Автор: volvo 15.10.2009 5:56
1147, все просто на самом деле: пишешь вот такой батник (допустим, назовем его F:\my.bat):
@echo off
for /F "tokens=1,2,3,4 delims=/ " %%i in ('date /T') do copy F:\t2\test.txt E:\t1\%%k.%%j.%%l.txt
, и запускаешь At из командной строки:
F:\>at 6:00 /every:m,t,w,th,f,s,su f:\my.bat
Теперь каждый перечисленный день (а перечислены все дни недели, то есть, каждый день) в 6 утра файл test.txt из папки F:\t2 будет копироваться в папку E:\t1 под именем ТекущийДень.ТекущийМесяц.ТекущийГод.txt...
Названия папок и файлов замени на нужные тебе... Проверено только что на WinXP SP3, отработало...
Автор: Lapp 15.10.2009 6:01
Цитата(volvo @ 15.10.2009 2:56)
1147, все просто на самом деле:
да
Но сервис все же не забудь запускать)).
Добавлено через 6 мин. Стоп... что-то я не уверен..
Цитата(volvo @ 15.10.2009 2:56)
F:\>at 6:00 /every:m,t,w,th,f,s,su f:\my.bat
- оно правда работает? Я б сделал так, думаю..
Код
at 6:00 /every:m,t,w,th,f,s,su "command -c f:\my.bat"
Автор: volvo 15.10.2009 6:09
Цитата
оно правда работает?
Ну, не работало б - я бы не запостил, наверное?
Автор: Lapp 15.10.2009 6:30
Цитата(volvo @ 15.10.2009 3:09)
Ну, не работало б - я бы не запостил, наверное?
так-то воно так, но..
эх, давно это было..
Автор: 1147 15.10.2009 17:36
до каких пор будет действовать добавленная задача? после перезагрузки пк она действует или чтобы ее отменить нужно какое-то другое действие?
Автор: volvo 15.10.2009 17:58
Будет работать и после перезагрузки (проверь в "Панель управления" -> "Назначенные задания" что у тебя задание корректно создано и присутствует в списке). Чтобы удалить задание - надо вызвать
at ИдентификаторЗадания /delete
, это все написано в Хелпе, кстати... ИдентификаторЗадания можешь посмотреть запуском команды At без параметров...
Добавлено через 1 мин. Что-то тема от ассемблера удаляется. Может, перенесу ее в раздел "ОС и ПО"?
Автор: 1147 15.10.2009 18:27
чтото у меня при назначении задания все время возникает ошибка "не удается установить учетную запись". пробовал на разных пк и везде одна и та же ошибка с учетной записью. В чем тут может быть дело?
Автор: volvo 15.10.2009 18:46
Можешь показать, как выглядит ошибка? Скриншот ее, в смысле...
Добавлено через 1 мин.
Вдогонку: пользователь с админскими правами, или без них?
Автор: 1147 15.10.2009 18:55
с админскими правами
Эскизы прикрепленных изображений
Автор: volvo 15.10.2009 19:04
Вот это почитай:
Цитата
Корпорация Microsoft стала ограничивать функциональность оперсистем, начиная с WindowsXp, в том случае, если в текущей учётной записи не установлен пароль. Чтобы в Планировщике заданий устранить ошибку "не удаётся установить учётную запись" надо либо задать пароль в текущей учётке, либо снять ограничение на использование пустых паролей. Какой вариант удобнее для Вас?
1)Задать пароль можно войдя в ПанельУправления \ "Учётные записи пользователей", клик на иконке текущей учётки, в ней запустите команду СозданиеПароля. Для начала создайте простой пароль (хотя бы одну цифру 1, пароль можно изменить позже), не содержащий букв. Иногда пользователи задают в пароле латинскую "A", а при запросе вводят внешне похожую русскую "А", несоответствие регистров (размеров) букв также приводит к ошибке, так как коды этих букв - разные.
2)Чтоб снять ограничение на использование пустых паролей войдите в ПанельУправления \ Администрирование \ "Локальная политика безопасности" \ "Локальные политики" \ "Параметры безопасности". Отключите параметр "Учетные записи: ограничить использование пустых паролей только для консольного входа".
Теперь для любого из выбранных Вами вариантов надо привести в соответствие параметры безопасности (логин и пароль), заданные для входа в учётную запись, аналогичным значениям для каждого из заданий Планировщика. Это необходимо делать при каждой смене пароля или параметров задания. Для этого в свойствах задания на вкладке Задание нажмите кнопку ЗадатьПароль. Если кнопка не-активна, то (хотя бы временно) сбросьте флаг "Выполнять только при выполненном входе в систему". Нажмите ОК (окно закроется) или Применить.
Проверьте исполняемость задания из его контекста (правый клик по его имени) командой Выполнить.
Автор: 1147 15.10.2009 19:30
в заданное время открылся текстовый документ my.bat. Он так и должен каждый раз открываться? А нужный файл не был скопирован...
Назначение задания аналогично строке F:\>at 6:00 /every:m,t,w,th,f,s,su f:\my.bat в командной строке?
Автор: volvo 15.10.2009 20:11
Цитата
в заданное время открылся текстовый документ my.bat. Он так и должен каждый раз открываться?
Ну, я уж не знаю, что ты там себе назначил открывать, вот скриншот свойств Задания:
, в назначенное время файл my.bat запустился на выполнение и выполнил поставленную задачу. Может, ты назначил себе открытие это файла текстовым редактором, а не запуск?
Автор: 1147 15.10.2009 20:38
у меня в свойствах файла my.bat приложение-текстовый редактор. Какое должно быть приложение вместо редактора чтобы все правильно работало? Чтобы создать bat файл, наверное не достаточно просто в блокноте написать определенную строчку. Что для этого необходимо сделать?
Автор: volvo 15.10.2009 21:58
Цитата
меня в свойствах файла my.bat приложение-текстовый редактор
То есть, у тебя файл что, сохраняется как my.bat.txt??? Отключи скрытие расширений для известных типов файлов в настройках папки (снять галку с Folder Options-> View -> Hide extension for known file types), и убедись, что .BAT - это последнее, что есть в расширении файла, если там будет my.bat
.txt, то этот файл не будет запускаться, а будет только открываться Блокнотом...
Цитата
Чтобы создать bat файл, наверное не достаточно просто в блокноте написать определенную строчку
Достаточно... Смотри:
1) открываешь блокнот, пишешь в нем текст BAT-файла, Save As -> my.bat
2) запускаешь "Scheduled Tasks" -> Next -> при запросе выбора приложения жмешь Browse -> выбираешь только что сохраненный BAT-файл и жмешь кнопку Open...
3) выбираешь частоту запуска (Ежедневно) и время
4) вводишь пользователя от имени которого будет запускаться задание + пароли на учетку (если есть)
5) все, жмешь Finish
Потом открываешь Свойства полученного файла *.JOB и убеждаешься, что никакого Notepad-а там не запускается, запускаться должен именно BAT-ник... Все работает, только что еще раз проверил...