powershell и функции

Windows 95, 98, ME и 3,11; WinNT, Win2000, WinXP, Win2003, Vista, 7
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
fordiego
проходил мимо
Сообщения: 9
Зарегистрирован: 2012-05-26 9:23:39
Откуда: Ульяновск
Контактная информация:

powershell и функции

Непрочитанное сообщение fordiego » 2012-05-26 9:27:38

Доброго времени. Пишу скрипт смысл которого вести лог с датой и временем события. Соответственно для этого необходимо создать функцию типа так:

Код: Выделить всё

function date_time
{
$date = Get-Date -format yyyy-MM-dd
$time = Get-Date -format T
}
и где-нибудь в коде вызываем это функцию типа так

Код: Выделить всё

(date_time)
echo " $date $time текущая дата и время"
тесть функция каждый раз при вызове присваивает новые значения переменным $date и $time

так вот в баше такая логическая конструкция прекрасно отрабатывает в powershell не работает (((
подскажите как сделать?
Последний раз редактировалось f_andrey 2012-05-26 23:09:24, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: powershell и функции

Непрочитанное сообщение Гость » 2012-05-28 13:26:42

При вызове функции создается своя область видимости,в данном случае локальная,поэтому доступ к переменным Date и Time,получить нельзя,т.к они уничтожаются.

Поэтому либо меняем область видимости,скажем на global:

Код: Выделить всё

function date_time
{
   $global:date = Get-Date -format yyyy-MM-dd
   $global:time = Get-Date -format T
} 

Либо используем dot-source(точка обязательна):

Код: Выделить всё

. date_time