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