Far 3: Импорт/экспорт настроек

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
Zeroes
Мультикопипастер Броадкастер
Posts: 634
Joined: Wed 16 Mar, 2005 20:53
Location: Gomel \ Belarus
Has thanked: 2 times
Been thanked: 13 times

Far 3: Импорт/экспорт настроек

Post by Zeroes »

Latest post of the previous page:

В связи с

drkns 2026-02-27 00:03:31+00:00 - build 6649
  1. Implement import/export for histories and local plugin configs.
Есть какие то рабочие варианты (консольные утилиты, скрипты ps/cscript) по выпиливанию элемента history
<history>
<items>
...
</history>
из XML?
--- Zeroes & Ones ---
User avatar
HaRT
Moderator
Posts: 11417
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 265 times
Been thanked: 412 times

Far 3: Импорт/экспорт настроек

Post by HaRT »

Zeroes wrote: Sun 01 Mar, 2026 22:16из XML
Первое, что приходит в голову, — старый добрый xslt. Но готовую инструкцию я предложить не могу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

Zeroes wrote: Sun 01 Mar, 2026 22:16 Есть какие то рабочие варианты (консольные утилиты, скрипты ps/cscript) по выпиливанию элемента history
XMLStarlet command line XML toolkit download | SourceForge.net

Code: Select all

xml ed -d "//history" input.xml  > output.xml
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

Батник, который берет настройки, экспортированные с помощью far /export, извлекает только один конкретный узел и сохраняет в указанный файл.
Использует ту же утилиту XMLStarlet.
Аргументы задаются в первых строках батника
Yegor
Posts: 1495
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

Far 3: Импорт/экспорт настроек

Post by Yegor »

простой вариант без xml тула

Code: Select all

@echo off
setlocal EnableDelayedExpansion

set infile=backup.xml
set outfile=colors.xml
set capture=0
set node=colors

echo ^<farconfig^> > "%outfile%"

for /f "usebackq delims=" %%L in ("%infile%") do (
    set "line=%%L"

    set "test=!line:<%node%>=!"
    if not "!test!"=="!line!" set capture=1

    if "!capture!"=="1" >> "%outfile%" echo(%%L

    set "test=!line:</%node%>=!"
    if not "!test!"=="!line!" set capture=0
)

echo ^</farconfig^> >> "%outfile%"
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

Yegor, красивая идея, но для настроек конкретного плагина работает некорректно
Yegor
Posts: 1495
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

Far 3: Импорт/экспорт настроек

Post by Yegor »

Это я сделал чисто для примера, ваш вариант уже есть, кому надо скачают xml tool
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
Zeroes
Мультикопипастер Броадкастер
Posts: 634
Joined: Wed 16 Mar, 2005 20:53
Location: Gomel \ Belarus
Has thanked: 2 times
Been thanked: 13 times

Far 3: Импорт/экспорт настроек

Post by Zeroes »

phidel,

у меня возникла ситуация что в историю попали символы на которых xmlstarlet обламывается пришлось добавить
постобработку в батник:

:: убираем запрещенные символы
powershell -Command "(Get-Content 'far.config') -replace '[\x01\x16]', '' | Set-Content 'far.config' -Encoding UTF8"
--- Zeroes & Ones ---
User avatar
John Doe
Бюрократ
Posts: 14547
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 508 times
Contact:

Far 3: Импорт/экспорт настроек

Post by John Doe »

Zeroes wrote: Fri 06 Mar, 2026 22:10 у меня возникла ситуация что в историю попали символы на которых xmlstarlet обламывается
Не должен он обламываться на корректном xml.
https://t.me/FarManager — Telegram чат
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

John Doe wrote: Fri 06 Mar, 2026 23:19 Не должен он обламываться на корректном xml
нет, это far не должен вставлять некорректные символы в экспорт )
Yegor
Posts: 1495
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

Far 3: Импорт/экспорт настроек

Post by Yegor »

Если вы пользуетесь PowerShell, то вам тот xml tool вообще не нужен.

Code: Select all

([xml](Get-Content "backup.xml" -Encoding UTF8)).SelectSingleNode("//colors").OuterXml | Set-Content "colors.xml" -Encoding UTF8
XML spec не подерживает символы с кодом меньше 32 (кроме 9, 10 и 13): https://www.w3.org/TR/xml/#charsets
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

Yegor, удалять узлы он тоже умеет?
Yegor
Posts: 1495
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

Far 3: Импорт/экспорт настроек

Post by Yegor »

phidel wrote: Sat 07 Mar, 2026 00:53 Yegor, удалять узлы он тоже умеет?
PowerShell имеет доступ ко всему .NET-у, умеет все, xml у него это https://learn.microsoft.com/en-us/dotne ... mldocument
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
User avatar
phidel
Posts: 81
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 28 times
Been thanked: 4 times

Far 3: Импорт/экспорт настроек

Post by phidel »

Yegor wrote: Sat 07 Mar, 2026 01:07 PowerShell имеет доступ ко всему .NET
пожалуй, наиболее правильный подход (под windows по крайней мере)
Post Reply

Return to “Обсуждение Far Manager”