FarCall — задание переменных окружения пакетным файлом

Здесь можно обсудить ваш любимый плагин.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

Latest post of the previous page:

а фар такое как обрабатывает?
MDM
Posts: 90
Joined: Fri 02 Dec, 2005 20:47
Location: Москва
Has thanked: 4 times
Been thanked: 2 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by MDM »

а фар такое как обрабатывает?
Какое? Он же не сам обрабатывает батники, а запускает новый экземпляр cmd и ждет его завершения. Или не так?
Из-за того, что переменные, созданы в другой сессии, он не может получить их значения, т.к. область видимости незарегистрированных в системе переменных ограничена текущим процессом cmd. Плагин позволяет избежать это ограничение, но не видит переменные из области setlocal батника.

Code: Select all

@echo off
set test_1=test_1
setlocal
set test_2=test_2
Если запустить `call:this.cmd`, а потом выполнить `set test_`, то на выходе получим только `test_1=test_1`
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by t-rex »

Ну так это же правильно, почему вдруг должно быть по другому?
MDM
Posts: 90
Joined: Fri 02 Dec, 2005 20:47
Location: Москва
Has thanked: 4 times
Been thanked: 2 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by MDM »

Ну так это же правильно, почему вдруг должно быть по другому?
Я поэтому и написал "Хотя с другой стороны.." Т.е здесь нет оптимального решения. Если, допустим, нужна одна результирующая переменная, но чтоб ее получить в ходе выполнения батника создаются еще 99, то они потом будут висеть в фаре, хотя совсем не нужны. Но их можно упрятать в setlocal. А в другом случае может наоборот потребоваться переменная из области setlocal. Может есть возможность добавить настройки к плагину?
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by t-rex »

Плагин тут вообще не причём, он переменные в setlocal вообще не видит, для этого setlocal и придумали то, так должно работать и никаких настроек и выкрутасов не надо.
MDM
Posts: 90
Joined: Fri 02 Dec, 2005 20:47
Location: Москва
Has thanked: 4 times
Been thanked: 2 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by MDM »

он переменные в setlocal вообще не видит, для этого setlocal и придумали то
Иногда без сетлокал переменную и не получишь.
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by t-rex »

Сергей, я тут посмотрел твой код и подумалось, не проще ли просто запустить процесс а потом когда он вышел вычитать блок env из его памяти перед закрытием его handle - или в этот момент там уже пусто (хэндл то ещё открыт, может оно всё ещё там не)?
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

закинул новую версию... там фикс для фара билда 1145+
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by ctapmex »

можно надеяться на 64 битную версию? или сейчас есть альтернативы плагину?
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

можно, конечно... только что-то она падает... причем валится внутри фара если в функе GetPluginInfoW указать префикс вызова плуга... собираю VS2010... может кто-нить что-нить подскажет?
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

1 байт
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by ctapmex »

hoopoe,
мы ж с тобой в личке все решили . я просто тут раньше вопрос написал.
несобирается из-за - в настройках Struct Member Alignment. если выставить в default , все взлетает.
плюс - смена API. FCTL_GETCURRENTDIRECTORY - еще в 1180 удалили.

я поправил версию, сам пользуюсь, да все руки не доходят выложить.
по уму, раз ты нигде исходники не хранишь, их кинуть бы на какой-нибудь google-code , рядом с другими плагинами
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

да я просто фар поставил на 64-bit... far call отвалился накер... вот и занялся портированием... ты б сырцы-то новые выложил :)
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Re: FarCall — задание переменных окружения пакетным файлом

Post by ctapmex »

выкладывать в общем то нечего, я только до работоспособного варианта довел под far2
строку

Code: Select all

InfoW.Control(INVALID_HANDLE_VALUE, W::FCTL_GETCURRENTDIRECTORY, CUR_DIR_SIZE, (long*)curdir);
заменяешь на

Code: Select all

FSFW.GetCurrentDirectory(CUR_DIR_SIZE,curdir);
и в настройках Struct Member Alignment выставить в default

после этого соберется и будет работать на far2.
User avatar
hoopoe
Posts: 263
Joined: Mon 28 Mar, 2005 07:44
Location: Нежный Новгород
Has thanked: 1 time
Contact:

Re: FarCall — задание переменных окружения пакетным файлом

Post by hoopoe »

вот, вроде должно работать на Far 64... там сырцы и бинарики... собирал десятой студией (что под руку попалось :) )

2sonar: у мну есть сурс контроль клиент только svn... так шо если надумаешь сырцы публиковать - то все, что не svn (ну еще cvs можно попробовать) - пойдет через твои руки 8)
Attachments
FarCall_64_test.7z
(53.12 KiB) Downloaded 154 times
Post Reply

Return to “Обсуждение плагинов”