El grupo de usuarios de Cincinnati PowerShell (@CincyPowershell) abre cada reunión con una revisión de un cmdlet. Esta noche era el turno de Get-Date. Muchos de los ejemplos se hicieron con Get-Date y, con un ejemplo que muestra que solo soporta el método IsLeapYear (). Esto me hizo pensar sometimes (a veces algo doloroso)) y la bombilla se encendió sobre mi cabeza. Get-Date devuelve una instancia del sistema.Clase DateTime, i. e., un objeto, mientras que es una referencia a la clase y proporciona un fácil acceso a los métodos estáticos de la clase.
Sistema.DateTime
¿Qué pasa con los dos puntos? Son la forma de PowerShell de llamar a un método estático en una clase. Volviendo a la pregunta IsLeapYear (), es un método estático de la clase DateTime. Para acceder a él escribimos:: IsLeapYear(2016).
Get-Date
Get-Date es un cmdlet con muchas opciones, pero la opción predeterminada es devolver la fecha y la hora actuales. I. E.:: Now.
la clase desde la que se creó un objeto también se llama it’S type. Entonces, ¿cuál es el «tipo» de una cita?,
![]()
Instancias de Objetos
Si Get-Date devuelve una instancia, ¿cómo podría hacer que con ? Dos maneras, utilizar uno de los métodos estáticos como .Ahora o .O cree un nuevo objeto con el cmdlet New-Object.
el Uso de los métodos estáticos:
$d = ::Ahora (o simplemente .Ahora)
d D=:: Hoy (o simplemente .Hoy)
Usando New-Object:
d D = New-Object System.,DateTime (o simplemente DateTime)
el aspecto único de usar New-Object con DateTime es que obtiene un objeto con valores predeterminados para Año, Mes, Día, etc. y no la cita de hoy. El resultado real es «lunes, enero 01, 0001 12: 00: 00 AM».
![]()
Si desea crear una fecha u hora en particular, utilice uno de los constructores de la clase. (Vea el enlace de la estructura DateTime al final del artículo para más detalles.)
![]()
Aquí hay un buen artículo sobre clases, instancias, estadísticas de Don Jones.,
y solo por diversión solo en PowerShell 5.0
¿Quién necesita ? Simplemente llame a los métodos estáticos de cualquier objeto DateTime! Lo siguiente produce el mismo resultado, teniendo en cuenta que Get-Date agrega la sobrecarga adicional de recuperar la fecha actual y luego ignorarla.
(Get-Date)::IsLeapYear(2016)
$d = Get-Date
$d::IsLeapYear(2016)$d = ::Ahora
$d::IsLeapYear(2016)
¿Qué acerca de PowerShell 3.0?
los ejemplos de 5.0 no funcionan con 3.0. Tenemos que pedir la «clase», es decir, el tipo.,
(Get-Date).GetType()::IsLeapYear(2016)
$d = Get-Date
$d.GetType()::IsLeapYear(2016)$d = ::Ahora
$d.GetType()::IsLeapYear(2016)
¿Qué acerca de PowerShell 4.0?
¡me supera! (No tengo una copia delante de mí en este momento.)
Descubra los Métodos Estáticos y Propiedades de un Objeto
Get-member tiene una Estática parámetro para mostrar la estática de los métodos y propiedades de un objeto:
Get-Date | Get-member -Static
![]()
Más Divertido Con Métodos Estáticos
la Mayoría .,Las clases Net no se exponen en PowerShell como cmdlets.
por ejemplo, es posible que necesite un nuevo GUID <
::NewGuid() devolverá un nuevo objeto GUID.
::NewGuid ().toString () devolverá un nuevo GUID como una cadena.
![]()
¿Matemáticas?
Necesita el valor de PI?
:: PI (o simplemente:: PI) se trata de 3.14159265358979 de acuerdo con PowerShell y .Net.
¿Qué tal la raíz cuadrada de 2?
:: Sqrt (2) (vamos a ver think creo que se trata de 1.4142135623731.)
y por supuesto, el seno de 45 grados:
::sin (0.,785398163397448) (en radianes, por supuesto) Oh, alrededor de 0.707106781186547.
y haciendo un poco de conversión de grados a radianes:
::sin( ::pi/180*45 )
para más de lo que la clase de matemáticas puede hacer, vea el enlace de matemáticas al final del artículo. O bien, espere, use PowerShell:<| p>
/ Get-Member-Static
Bottom line!si los chicos de C# pueden hacerlo, entonces usted también puede hacerlo!
así que ya sabes 2 2016 es un año bisiesto! Y al menos una docena de diferentes maneras!
(y un artículo rápido de 5 minutos tomó más de una hora))
Usando clases y métodos estáticos
Sistema.Clase de matemáticas
Leave a Reply