Помощь - Поиск - Пользователи - Календарь
Полная версия: нужна помощь в создании программы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Assembler
1147
помогите с такой задачей: нужно создать программу которая каждый день, в 6 часов утра копирует файл из папки С:\1\rew в папку D:\2\11.10.2009 и задает ему имя текущей даты
volvo
Так у тебя программа что, будет постоянно в памяти висеть? Или тебя устроит вариант запуска в определенное время (скажем, через At) и выполнение определенных действий? Хотя тогда можно вообще без ассемблера, одним батником обойтись...
1147
если будет висеть в памяти, то наверное ничего страшного т.к. много ресурсов ей не нужно. но вариант с батником все же предпочтительнее.. можно поподробнее о нем?
Lapp
Цитата(1147 @ 15.10.2009 2:11) *
вариант с батником все же предпочтительнее.. можно поподробнее о нем?
Какая у тя Винда?
1147
ХР, SP2
Lapp
Цитата(1147 @ 15.10.2009 2:21) *
ХР, SP2

1. Поставь сервис Task Scheduler в автомат.
2. Задать задачу можно двумя способами:
- команда at в комстроке (help at для справки)
- в windows explorer: My Computer -> Control Panel -> Scheduled Tasks
3. батник сам напишешь?
volvo
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
Цитата(volvo @ 15.10.2009 2:56) *
1147, все просто на самом деле:
да yes2.gif
Но сервис все же не забудь запускать)).

Добавлено через 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
Цитата
оно правда работает?
Ну, не работало б - я бы не запостил, наверное? smile.gif
Lapp
Цитата(volvo @ 15.10.2009 3:09) *
Ну, не работало б - я бы не запостил, наверное? smile.gif
так-то воно так, но.. wacko.gif эх, давно это было..
1147
до каких пор будет действовать добавленная задача? после перезагрузки пк она действует или чтобы ее отменить нужно какое-то другое действие?
volvo
Будет работать и после перезагрузки (проверь в "Панель управления" -> "Назначенные задания" что у тебя задание корректно создано и присутствует в списке). Чтобы удалить задание - надо вызвать
at ИдентификаторЗадания /delete
, это все написано в Хелпе, кстати... ИдентификаторЗадания можешь посмотреть запуском команды At без параметров...

Добавлено через 1 мин.
Что-то тема от ассемблера удаляется. Может, перенесу ее в раздел "ОС и ПО"?
1147
чтото у меня при назначении задания все время возникает ошибка "не удается установить учетную запись". пробовал на разных пк и везде одна и та же ошибка с учетной записью. В чем тут может быть дело?
volvo
Можешь показать, как выглядит ошибка? Скриншот ее, в смысле...

Добавлено через 1 мин.
Вдогонку: пользователь с админскими правами, или без них?
1147
с админскими правами
volvo
Вот это почитай:
Цитата
Корпорация Microsoft стала ограничивать функциональность оперсистем, начиная с WindowsXp, в том случае, если в текущей учётной записи не установлен пароль. Чтобы в Планировщике заданий устранить ошибку "не удаётся установить учётную запись" надо либо задать пароль в текущей учётке, либо снять ограничение на использование пустых паролей. Какой вариант удобнее для Вас?

1)Задать пароль можно войдя в ПанельУправления \ "Учётные записи пользователей", клик на иконке текущей учётки, в ней запустите команду СозданиеПароля. Для начала создайте простой пароль (хотя бы одну цифру 1, пароль можно изменить позже), не содержащий букв. Иногда пользователи задают в пароле латинскую "A", а при запросе вводят внешне похожую русскую "А", несоответствие регистров (размеров) букв также приводит к ошибке, так как коды этих букв - разные.

2)Чтоб снять ограничение на использование пустых паролей войдите в ПанельУправления \ Администрирование \ "Локальная политика безопасности" \ "Локальные политики" \ "Параметры безопасности". Отключите параметр "Учетные записи: ограничить использование пустых паролей только для консольного входа".

Теперь для любого из выбранных Вами вариантов надо привести в соответствие параметры безопасности (логин и пароль), заданные для входа в учётную запись, аналогичным значениям для каждого из заданий Планировщика. Это необходимо делать при каждой смене пароля или параметров задания. Для этого в свойствах задания на вкладке Задание нажмите кнопку ЗадатьПароль. Если кнопка не-активна, то (хотя бы временно) сбросьте флаг "Выполнять только при выполненном входе в систему". Нажмите ОК (окно закроется) или Применить.

Проверьте исполняемость задания из его контекста (правый клик по его имени) командой Выполнить.
1147
в заданное время открылся текстовый документ my.bat. Он так и должен каждый раз открываться? А нужный файл не был скопирован...
Назначение задания аналогично строке F:\>at 6:00 /every:m,t,w,th,f,s,su f:\my.bat в командной строке?
volvo
Цитата
в заданное время открылся текстовый документ my.bat. Он так и должен каждый раз открываться?
Ну, я уж не знаю, что ты там себе назначил открывать, вот скриншот свойств Задания:
Нажмите для просмотра прикрепленного файла
, в назначенное время файл my.bat запустился на выполнение и выполнил поставленную задачу. Может, ты назначил себе открытие это файла текстовым редактором, а не запуск?
1147
у меня в свойствах файла my.bat приложение-текстовый редактор. Какое должно быть приложение вместо редактора чтобы все правильно работало? Чтобы создать bat файл, наверное не достаточно просто в блокноте написать определенную строчку. Что для этого необходимо сделать?
volvo
Цитата
меня в свойствах файла 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-ник... Все работает, только что еще раз проверил...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.