LINUX.ORG.RU

Пара вопросов про WINE

 


0

1

1. В Windows у утилиты reg есть команды save и restore. Как я понял, для сохранения информации из реестра в формат HIV и восстановления из HIV в реестр. В WINE reg таких команд не знает. Как перенести информацию из HIV в реестр Вайна без использования машины с оффтопиком?

2. Шелл-скрипт перед запуском команды выводит её в консоль echo-м. Но команда вызывает программу под Wine и переменная содержит путь с бэкслэшами. Поэтому «c:\external\catalogue.txt» превращается во что-то вроде «c:ternaltalogue.txt». Как лучше экранировать бэкслэши? Помимо прогона через sed 's/\\/\\\\/g'

Пояснение по пункту 2: Бэкслэши — в параметре командной строки, передаваемом виндовой программе. Если бы эта программа умела работать с обоими слэшами, проблемы бы не возникло.

P.S. Debian Stretch, Ubuntu 16.04.

Ответ 2: Использовать bash. Сейчас пойдёт, но в дальнейшем понадобится пускать его и в BusyBox.

★★★

Последнее исправление: olegd (всего исправлений: 5)

2. Скрипт на Bash перед запуском команды выводит её в консоль echo-м. Но команда вызывает программу под Wine и переменная содержит путь с бэкслэшами. Поэтому «c:\external\catalogue.txt» превращается во что-то вроде «c:ternaltalogue.txt». Как лучше экранировать бэкслэши? Помимо прогона через sed 's/\\/\\\\/g'

УМВР:

winpath='c:\external\catalogue.txt'
echo "aaaa: ${winpath}"
printf "bbbb: %s\n" "${winpath}"

Deleted
()
Ответ на: комментарий от Deleted

tcmd — переменная, то, что у тебя обозначалось winpath.

Не успел дописать: если скрипт на bash — печатает нормально. Спасибо.

olegd ★★★
() автор топика
Последнее исправление: olegd (всего исправлений: 1)
Ответ на: комментарий от olegd

Получилось воспроизвести твою проблему с dash вместо bash. Но только в варианте с echo. Видимо echo в dash пытается преобразовать \-последовательности из строк из переменных, а echo из bash их игнорит.

Вариант с printf и там и там работает одинаково нормально.

Deleted
()

Что за HIV? В regedit (как в виндовом, так и в Wine) можно экспортировать/импортировать reg файлы.

Kron4ek ★★★★★
()
Ответ на: комментарий от Kron4ek

более того, реестр wine этож обычный текстовый файл - вообще можно кусками хоть из того-же старого формата reg

anonymous
()
Ответ на: комментарий от Kron4ek

Что за HIV?

Похоже, тот же бинарный формат, в котором хранится реестр Windows. Во всяком случае, его в разной документации называют «hive».

В regedit (как в виндовом, так и в Wine) можно экспортировать/импортировать reg файлы.

Не regedit, а именно reg. Чисто консольная утилита. Умеет также работать с текстовыми файлами и отдельными текстовыми строками.

olegd ★★★
() автор топика
Ответ на: комментарий от anonymous

более того, реестр wine этож обычный текстовый файл - вообще можно кусками хоть из того-же старого формата reg

А виндовый бинарный. И HIV бинарный. Возможно, это один формат.

olegd ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.