Модераторы: bartram, Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> автоматическое переименование файла, по дням недели 
:(
    Опции темы
Гость_Сергей
Дата 13.1.2006, 17:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Вот в командной строке можно использовать переменные %DATE% и %TIME%, которые выдают соответственно дату в формате ДД.ММ.ГГГГ и время в формате ЧЧ:ММ:СС,ЦЦ
у меня стоит запланированное задание, которое каждый день создаёт файл с именем report.txt
вручную приходиться потом переименовывать этот файл, например monday.txt
вопрос 1.
как можно сделать назначенное задание, чтобы оно переименовывало файл report.txt в файл дня недели (в понедельник monday.txt и т. д.) или какие программы для этого есть?

вопрос 2. что означают ЦЦ (две цифры), следующие после запятой?

  Вверх
Bogdan1024
Дата 13.1.2006, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



вопрос 1.
Можно запрограмировать прогу smile



--------------------
user posted image
PM MAIL   Вверх
quarz
Дата 14.1.2006, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 205
Регистрация: 7.1.2005

Репутация: нет
Всего: 3



Имхо средствами винды такое сделать не получится. Как сказал Богдан, выход - писать программу которая бы запускалась той же виндой после создания файла и переименовывала бы этот файл...работа на 2 строки)) если нужно - могу помочь
PM MAIL   Вверх
lovermann
Дата 15.1.2006, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 28.12.2004
Где: Прага

Репутация: нет
Всего: 8



Я так понял, у человека есть .bat-файл, который создаёт/исправляет лог. Зачем ему запускать какую-то программу, когда можно поправить этот батник так, чтобы он сам называл файл, как надо. Этот же код можно сохранить как отдельный батник и тоже создать задание запускать этот батник сразу после создания файла репорта.

Вот тебе часть кода, которая переименовывает файл в соответствии с днём недели:

Код

здесь был неработающий скрипт - стёрто


К сожалению, в моей версии DOS-а переменная %DATE% не хранит день недели, хотя в примерах я видел, что в других версиях она там хранится - её можно вытянуть, поэтому скрипт, который я привёл сделан немного сложно, что никак не влияет на его функциональность или скорость работы smile

Этот же код можно переписать на JScript или VBScript (будет намного проще, думаю, выглядеть) и использовать WSH, который есть в винде.

Это сообщение отредактировал(а) lovermann - 16.1.2006, 17:32
PM WWW ICQ   Вверх
Гость_Сергей
Дата 16.1.2006, 13:02 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











loverman, спасибо за батник.
только неправильно он переименовывет. вот сегодня 16.01.2006 я его запускаю, он мне переименовывает в субботу, меняю дату на 18.01.2006 всё равно на субботу переименовывает.
и можешь поподробнее рассказать, как связаны errorlevel и день недели?
  Вверх
Гость_Сергей
Дата 16.1.2006, 13:04 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











%DATE% хранит в себе день недели, если стоит win2000, а на ХР и 2003 она не хранит день недели...
  Вверх
LSD
Дата 16.1.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 14
Всего: 538



В принципе можно сделать такой финт ушами: в реестре в разделе HKCU\Control Panel\International присваиваем ключу sShortDate значение dddd (через апплет панели управления это не сделать, онбудет ругаться на неправильный формат). Теперь в переменной %DATE% будет храниться день недели, правда в сокращенном формате (Пн, ВТ, Ср и т.д.).
Чтобы не "поганить" основную систему, можно создать фиктивного пользователя и проделать эти установки для него. И соответсвенно запускать запланированное задание, от его имени.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Гость_Сергей
Дата 16.1.2006, 16:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











все назначенные задания у меня происходят от имени robot. поменял ему формат даты. действительно формат изменился.
НО. при выполнении этого задания, происходит ошибка (прошлый запуск 0х1). поискал в интернете, что бы это могло быть. нашёл ответ non-unicode symbols in bat-file. скорее всего это глюк какой-то из-за того, что переменная %DATE% в пакетном файле выдаёт день недели в дос-кодировке, а имя файла записывается в вин-кодировке. Может из-за этого чтонибудь не так?

Но всё же хотелось бы не менять формат даты у пользователя robot, потому что есть другие задания, в которых требуется именно формат ДД.ММ.ГГГГ

Объясните, пожалуйста, поподробнее как работает код у loverman, а то я не понял, как %errorlevel% влияет на текущий день недели.
  Вверх
Гость_Сергей
Дата 16.1.2006, 16:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Да, прога тоже очень поможет.
quarz, можешь написать? думаю она небольшая, всего несколько строк.
Вот условие к проге.
исполняемый файл switch.exe
запускаться он будет майкрософтовским шедулером, соответственно с параметрами.
например switch.exe C:\reports\report.txt делает следующее.
берёт файл reports.txt, переименовывает его в monday.txt (меняет только имя файла, расширение оставляет).

А на чём написать сможешь?
  Вверх
lovermann
Дата 16.1.2006, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 28.12.2004
Где: Прага

Репутация: нет
Всего: 8



Мой предыдущий код не работает smile, но

smile
Есть другое решение: .vbs скрипт, который переименовывает файл. На этот раз работает - проверено 100%.

rename_file.vbs
Код

dValue = Weekday(Now)

If dValue = 1 Then
dName = "Sunday"
ElseIf dValue = 2 Then
dName = "Monday"
Elseif dValue = 3 Then
dName = "Tuesday"
Elseif dValue = 4 Then
dName = "Wednesday"
Elseif dValue = 5 Then
dName = "Thursday"
Elseif dValue = 6 Then
dName = "Friday"
Elseif dValue = 7 Then
dName = "Saturday"
Else
dName = "Value out of range!" 
End If

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile "report.txt", dName&".txt"


И не надо никаких программ smile Названия дней недели можешь сам исправить - будет хоть русскими буквами smile Путь к файлу тоже можешь менять, если сам скрипт будет лежать не в той же директории, что и файл reports.txt

Это сообщение отредактировал(а) lovermann - 16.1.2006, 17:39
PM WWW ICQ   Вверх
Гость_Сергей
Дата 16.1.2006, 18:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











loverman, огромное спасибо! всё работает.
только ещё один момент. что нужно добавить в файл rename_file.vbs, чтобы перед переименование файла удалялся старый файл?

в директории уже находятся файлы monday.txt, tuesday.txt ... и report.txt
твой скрипт виснет, если в понедельник переименовывается файл, а monday.txt уже существует.
  Вверх
Гость_Сергей
Дата 16.1.2006, 19:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нашёл! :-) надо читать мануалы :-)
добавил fso.DeleteFile и всё заработало.

всем спасибо!
  Вверх
lovermann
Дата 16.1.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 28.12.2004
Где: Прага

Репутация: нет
Всего: 8



Ну, я рад, что смог помочь.
Если потребуется помощь, обращайся в этот форум, а вообще, я вижу ты убедился, что кучу готовых скриптов можно найти в интернете smile
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Windows"
December
bartram
Akella

Запрещается!

1. Обсуждать взлом и делиться кряками

2. Способствовать созданию и распространению вирусов

  • Для бессмертных бородатых вопросов типа Win vs Nix есть специальный форум Религиозные Войны
  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • ВСЕГДА УКАЗЫВАЙТЕ ВЕРСИЮ ОС

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, December, bartram, Akella.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Windows | Следующая тема »


 




[ Время генерации скрипта: 0.0584 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.