К Cookie Converter добавлен **фоновый режим**: без аргументов приложение открывается как раньше, а при запуске с параметрами обрабатывает файл или папку без показа окна и диалоговых сообщений.

## Как будет работать запуск

Пример обработки одного файла:

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies\cookies.json" --from auto --to netscape --time seconds
```

Пример обработки папки:

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies" --from auto --to json --time seconds
```

Параметры:

| Параметр | Значения | По умолчанию |
|---|---|---|
| `--input` | Путь к файлу или папке | Обязательный |
| `--from` | `auto`, `netscape`, `json` | `auto` |
| `--to` | `same`, `netscape`, `json` | `same` |
| `--time` | `seconds`, `milliseconds`, `microseconds`, `dmy`, `mdy` | `seconds` |

Представление времени:

| Значение | Результат |
|---|---|
| `seconds` | Unix timestamp в секундах |
| `milliseconds` | Unix timestamp в миллисекундах |
| `microseconds` | Unix timestamp в микросекундах |
| `dmy` | `DD-MM-YYYY HH:MM:SS` |
| `mdy` | `MM-DD-YYYY HH:MM:SS` |

Правила обработки:

- Исходные файлы не изменяются и не удаляются.
- Результат записывается рядом с исходным файлом.
- Для JSON используется расширение `.json`, для Netscape — `.txt`.
- К имени добавляется `-converted`.
- Если результат уже существует, создаётся `-converted-2`, затем `-converted-3` и т. д.
- При обработке папки выбираются файлы `.txt`, `.json`, `.cookies`, `.cookie` и файлы без расширения.
- Вложенные папки не обрабатываются.
- Уже созданные результаты с суффиксом `-converted` и `-converted-N` пропускаются при пакетной обработке.
- Ошибка в одном файле не останавливает обработку остальных.
- Отчёт записывается в файл журнала рядом с входными данными.

Например:

```text
Вход:      cookies.json
Результат: cookies-converted.txt
```

Для фоновой работы используем `Main(string[] args)` с возвратом кода завершения. Это позволяет вызывающей программе дождаться окончания и проверить результат обработки. [learn.microsoft](https://learn.microsoft.com/en-za/dotnet/csharp/fundamentals/program-structure/main-command-line)

Существующие файлы защищены от перезаписи через `FileMode.CreateNew`: если имя занято, код выбирает следующий номер результата. [learn.microsoft](https://learn.microsoft.com/en-us/dotnet/api/system.io.filemode?view=netframework-4.8.1)

## Примеры команд

### Минимальный запуск

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies\cookies.json"
```

Используются значения по умолчанию:

```text
Вход: Авто
Результат: Такой же формат
Время: Секунды
```

Результат:

```text
D:\Cookies\cookies-converted.json
```

### JSON → Netscape

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies\browser.json" --from json --to netscape --time seconds
```

Результат:

```text
D:\Cookies\browser-converted.txt
```

### Netscape → JSON

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies\cookies.txt" --from netscape --to json --time seconds
```

Результат:

```text
D:\Cookies\cookies-converted.json
```

### Папка со смешанными форматами → JSON

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies" --from auto --to json --time seconds
```

### Читаемая дата в результате

```bat
CookiesConverterTimeStamp.exe --input "D:\Cookies\cookies.json" --to json --time dmy
```

В JSON появится строковая дата:

```json
"expirationDate": "15-09-2026 09:41:32"
```

Для обычного импорта выбирай `--time seconds`. Остальные варианты предназначены для получателей, которые поддерживают соответствующее представление, либо для просмотра.

## Журнал и коды завершения

При фоновом запуске никаких окон не будет, даже при ошибках. Итоги сохраняются в журнале с именем наподобие:

```text
CookieConverter-cli-20261017-131500-123-4567.log
```

Обычно он находится в той же папке, что и входные файлы. Если туда невозможно записать журнал, используются резервные папки:

```text
%LOCALAPPDATA%\CookieConverter\Logs
```

затем:

```text
%TEMP%\CookieConverter\Logs
```

Журнал не содержит значений cookies: только имена файлов, пути результатов и категории ошибок.

| Код завершения | Значение |
|---:|---|
| `0` | Все файлы обработаны успешно |
| `1` | Один или несколько файлов не обработаны |
| `2` | Ошибка параметров командной строки |
| `3` | Ошибка запуска, доступа к входной папке или поиска входных данных |
| `4` | В папке нет подходящих файлов |
| `5` | Обработка завершилась, но журнал не удалось сохранить ни в одну из предусмотренных папок |

Чтобы из `.bat` дождаться завершения оконного `.exe` и получить код результата, используй:

```bat
@echo off

start "" /wait "C:\Tools\CookiesConverterTimeStamp.exe" --input "D:\Cookies" --from auto --to json --time seconds

set "RESULT=%ERRORLEVEL%"
echo Код завершения: %RESULT%

exit /b %RESULT%
```

Вызов без аргументов по-прежнему откроет обычное окно Cookie Converter. Фоновый режим выполняет один проход обработки и завершает процесс — это не постоянно работающая служба и не наблюдение за папкой.

Важное ограничение сохраняется из текущего приложения: `same` означает «тот же тип формата — Netscape или JSON», а не точное сохранение исходной JSON-структуры и всех неизвестных полей. Временные метки разбираются тем же анализатором, что и в оконном режиме.