o grupo de Usuários PowerShell de Cincinnati (@Cincinnypowershell) abre cada reunião com uma revisão de um cmdlet. Esta noite é a vez do Get-Date. Muitos dos exemplos foram feitos tanto com Get-Date e, com um exemplo mostrando que só suporta o método IsLeapYear (). Isto fez-me pensar… (às vezes uma coisa dolorosa…) e a lâmpada acendeu-se sobre a minha cabeça. O Get-Date devolve uma instância do sistema.= = Ligações externas = = , um objeto, enquanto é uma referência à classe e fornece fácil acesso aos métodos estáticos da classe.
sistema.DateTime
o que se passa com os dois cólons? Eles são a maneira de PowerShell chamar um método estático em uma classe. Então voltando à questão de IsLeapYear (), é um método estático da classe DateTime. Para acessá-lo, escrevemos ::IsLeapYear(2016).
Get-Date
Get-Date é um cmdlet com muitas opções, mas a opção padrão é retornar a data e hora atuais. Ou seja: agora.
A classe A partir da qual um objeto foi criado também é chamada de seu tipo. Qual é o tipo de encontro?,
![]()
instâncias/objectos
Se a data de obtenção devolve uma instância, como poderia fazer isso ? De duas maneiras, use um dos métodos estáticos como .Agora ou …Hoje, ou criar um novo objeto usando o cmdlet de novo objeto.
usando os métodos estáticos:
$d = ::Now (or just .Agora)
$D=:: Today (or just .Today)
Using New-Object:
$d = New-Object System.,DateTime (ou apenas DateTime)
o aspecto único do uso de novo objeto com DateTime é que você recebe de volta um objeto com valores padrão para Ano, Mês, Dia, etc. e não a data de hoje. O resultado é “Segunda-feira, 01 de Janeiro, 0001 12:00 AM”.
Se quiser criar uma determinada data ou hora, utilize um dos construtores da classe. (See the DateTime Structure link at the end of the article for details.)
![]()
há uma boa escrita sobre classes, instâncias, estática aqui de Don Jones.,
e apenas por diversão … e apenas em PowerShell 5.0
quem precisa ? Basta chamar os métodos estáticos fora de qualquer objeto DateTime! A seguir, todos produzem o mesmo resultado, tendo em mente que Get-Date adiciona a sobrecarga adicional de recuperar a data atual, e, em seguida, ignorá-lo.
(Get-Date)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::Agora
$d::IsLeapYear(2016)
o Que sobre PowerShell 3.0?
os exemplos para 5.0 não funcionam com 3.0. Temos que pedir a “classe”, ou seja, é tipo.,
(Get-Date).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::Agora
$d.GetType()::IsLeapYear(2016)
o Que sobre PowerShell 4.0?não faço ideia! Não tenho uma cópia à minha frente.)
Descubra o Estáticos Métodos e Propriedades de um Objeto
-Membro tem um parâmetro Estático para exibir as propriedades e métodos estáticos de um objecto:
Get-Date | Get-member -Estática
![]()
Mais Divertido Com Métodos Estáticos
a Maioria .,As classes líquidas não são expostas em PowerShell como cmdlets.
Por exemplo, poderá necessitar de um novo gráfico…
::NewGuid() irá devolver um novo objecto gráfico.
::NewGuid().toString () irá devolver um novo GUID como uma string.
![]()
Que tal Matemática?precisa do valor de PI?
::PI (ou apenas ::PI) é cerca de 3.14159265358979 de acordo com PowerShell e .Net.
Que tal a raiz quadrada de 2?
:: Sqrt (2) (Vamos ver… eu acho que é cerca de 1.4142135623731.)
E, claro, o seno de 45 graus:
::sin(0.,785398163397448) (em radianos, é claro) Oh, cerca de 0,707106781186547.
E fazendo um pouco de conversão de graus para Radianos:
::sin( ::pi/180*45 )
Para mais do que a aula de Matemática pode fazer, consulte a Matemática link no final do artigo. Ou, espere por ele, use PowerShell:
| Get-Member-Static
Bottom line … se os c# guys podem fazer isso, então você também pode!então agora você sabe… 2016 é um ano bissexto! E pelo menos uma dúzia de maneiras diferentes!
(e um artigo rápido de 5 minutos levou mais de uma hora…)
usando Classes e métodos estáticos
Sistema.Classe Matemática
Leave a Reply