Форум программистов, компьютерный форум, киберфорум
Наши страницы

Batch (CMD/BAT)

Войти
Регистрация
Восстановить пароль
 
Wrascon
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 37
#1

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

02.09.2017, 14:06. Просмотров 193. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Циклическое резервирование используемых файлов в свежей папке с перекодировкой по их изменению (CMD/BAT):

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

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

Циклическое копирование файлов и папок - CMD/BAT
Здравствуйте. Требуется создать цикл, в котором каждые 30 секунд будет копироваться все содержимое папки c:\111 (включая подпапки и...

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

Получить имена файлов, используемых процессом - C#
есть некий процесс, он читает некие файлы, хочу получить имена этих файлов в дотнете есть хоть что-то для этого дела? может кто...

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

2
alpap
1095 / 869 / 260
Регистрация: 26.04.2015
Сообщений: 3,269
03.09.2017, 02:45 #2
здесь и здесь есть вариант получения последнего по дате создания файла что легко меняется на папку, дальше прикручивайте.
0
Wrascon
0 / 0 / 0
Регистрация: 06.10.2013
Сообщений: 37
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
Привет! Вот еще темы с ответами:

Циклическое построение графиков из файлов - Matlab
Доброго времени суток! os - Debian, matlab - R2014a. Дано: много текстовых файлов в папке TEST, со структурой - "два столбца". в...

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

Циклическое создание текстовых файлов со списками - CMD/BAT
Возможно ли докостылять этот батник? @echo off for /l %%i in (1,1,50) do echo кв.%%i >>pod01.txt Как сделать что бы он каждые...

Циклическое последовательное переименование файлов в каталоге - CMD/BAT
Здравствуйте! Прошу помощи в скрипте, сам мало что понимаю в них. В одном каталоге есть файлы c числовыми именами: 01.jpg, 02.jpg и...


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

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

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