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