Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Wrascon
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 44
1

Циклическое резервирование используемых файлов в свежей папке с перекодировкой по их изменению

02.09.2017, 14:06. Просмотров 281. Ответов 2
Метки нет (Все метки)

Здравствуйте, обращаюсь за помощью к знатокам манипулирования над файлами по реагированию на их изменение.
Существует дерево папок logs с 10 папками последних запущенных сессий игры с названием в виде даты её запуска "2017.09.01 13.55.30". В самой папке хранятся 4 используемых .log файла с неправильной UTF-8 (65001) кодировкой. Изменить их не удастся в связи с использованием их самой игрой (Процесс не может получить доступ к файлу, так как этот файл занят другим процессом) С задачей перекодировать их в ANSI (1251) я справился банальным созданием их копии
Windows Batch file
1
2
3
4
5
chcp 65001
cmd /d /u /c type chat.log > .tmp
chcp 1251
type .tmp > chat1.log
del .tmp
Но проблема заключается в том, что он работает только внутри самой папки с нужными мне файлами, папка которых меняется при каждом новом запуске (создаётся новая папка логов текущей сессии игры и удаляется самая старая из них).

Задача заключается в определении последней папки созданной сессией игры (пусть даже 2017~10), где путь будет выглядеть как "C:\Users\user\Documents\My Games\Crossout\logs\2017.09.01 13.55.30"
Найти группу файлов .log (chat, combat, game, net) скопировать перекодированные из UTF-8 в ANSI их варианты в отдельную папку "C:\Test"
Проверять группу файлов на изменение их размера и при увеличении количества строк копировать таким же вариантом с заменой уже существующих в "C:\Test"

Если возможно, такая проверка должна срабатывать при появлении более свежей папки раздела logs типа "C:\Users\user\Documents\My Games\Crossout\logs\2017.09.02 14.01.50"
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2017, 14:06
Ответы с готовыми решениями:

Список используемых линковщиком файлов
Приветствую! Скорее всего у меня проблема в том, что я не могу верно сформулировать вопрос, иначе...

Как закрыть доступ к изменению ASP-файлов?
Есть такая проблема: ASP файлы, поставляемые заказчику и функционирующие на сервере были в ручную...

Получить имена файлов, используемых процессом
есть некий процесс, он читает некие файлы, хочу получить имена этих файлов в дотнете есть хоть...

Нет используемых роботом файлов Sitemap
Здравствуйте,решаю такой вопрос "Нет используемых роботом файлов Sitemap" :) почему он не видит...

Мониторинг используемых файлов запущенным приложением
Привет всем, народ подскажите с помощью какого ПО можно узнать какие в данный момент файлы...

2
alpap
1817 / 1333 / 435
Регистрация: 26.04.2015
Сообщений: 4,569
03.09.2017, 02:45 2
здесь и здесь есть вариант получения последнего по дате создания файла что легко меняется на папку, дальше прикручивайте.
0
Wrascon
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 44
26.09.2017, 00:17  [ТС] 3
Работаю всё над тем же проектом. Дело упирается в определение сегодняшней даты И ПОСЛЕДНЕГО времени создания папки. Сейчас полный путь не определяется самостоятельно, от чего также не возможно произвести копирование с перекодировкой. Не говоря уже об условии приводить эту проверку с копированием в цикл, я по прежнему сталкиваюсь с проблемами в её реализации.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
@echo off
chcp 1251 >nul
 
Set $SRC=C:\Users\user\Documents\My Games\Crossout\logs
Set $LOG1=chat.log
Set $LOG2=combat.log
Set $LOG3=game.log
Set $LOG4=net.log
Set $DST=D:\Program Files\Clickermann v4.12\projects\Crossout\Полубот\[Crossout] Проверка чата
 
:: Текущее время
set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%
set ms=%TIME:~9,2%
set curtime=%h%.%m%.%s%
set dd=%DATE:~0,2%
set mm=%DATE:~3,2%
set yyyy=%DATE:~6,4%
set curdate=%yyyy%.%mm%.%dd%
set curdatetime=%curdate% %curtime%
echo Текущее время - %curdatetime%
 
setlocal enabledelayedexpansion
set FileName=%$SRC%\%curdate% 14.10.52\%$LOG1%
for %%a in ("%FileName%") do (
    set File=%%~fa
    for /f "tokens=1* delims=," %%a in ('wmic datafile where "name='!File:\=\\!'" get 'LastModified' /format:csv ^| find /i "%ComputerName%"') do (set LastModified=%%b)
    set mYear=!LastModified:~0,4!
    set mMonth=!LastModified:~4,2!
    set mDay=!LastModified:~6,2!
    set mHour=!LastModified:~8,2!
    set mMinutes=!LastModified:~10,2!
    set mSec=!LastModified:~12,2!
    set TimeStamp=!mDay!.!mMonth!.!mYear! !mHour!:!mMinutes!:!mSec!
    ECHO !TimeStamp!
)
 
@echo off
chcp 65001
cmd /d /u /c type !x!%$LOG1% > .tmp
chcp 1251
type .tmp > %~dp0 %$LOG1%
del .tmp
 
echo xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "%$SRC%\*" "%$DST%"
xcopy /s /y /d:%DATE:~3,2%-%DATE:~,2%-%DATE:~6,4% "%$SRC%\*" "%$DST%"
pause>nul
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2017, 00:17

Циклическое копирование файлов и папок
Здравствуйте. Требуется создать цикл, в котором каждые 30 секунд будет копироваться все содержимое...

Циклическое создание файлов с текстом
Доброго времени суток всем! Есть задача создать 100 файлов с расширением *.cfg и текстом внутри...

Циклическое скрытие файлов на флешке
Суть вируса такова: Вставляю флешку в компьютер и все файлы на ней скриваются. У меня такое не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru