2011-08-13 20 views
8

Estoy usando powershell en Windows Vista. ¿Cómo cambio la cultura de la sesión actual? La cultura de mi computadora es tr-TR, así que recibo los mensajes de error en turco. Me gustaría cambiar a EN?powershell: cambiando la cultura de la sesión actual

¿alguna posibilidad?

+3

¿La solución a http://stackoverflow.com/questions/2379514/powershell-formatting-values-in-another-culture/ ayuda alguna? – Gabe

+0

-mira aquí [blog de thecnet] (http://social.technet.microsoft.com/Forums/en/winserverpowershell/thread/f4190964-9974-410b-9915-c66966f10edc) –

Respuesta

13

un vistazo aquí: http://blogs.msdn.com/b/powershell/archive/2006/04/25/583235.aspx

y aquí: http://poshcode.org/2226:

function Set-Culture([System.Globalization.CultureInfo] $culture) 
{ 
    [System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture 
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $culture 
} 

Información adicional

Para saber qué valores se pueden utilizar para $culture:

  • Esto le dará una lista de tipos de cultivo:

    [Enum]::GetValues([System.Globalization.CultureTypes]) 
    
  • Al seleccionar uno de los tipos anteriores (por ejemplo, AllCultures) a continuación, puede listar los valores disponibles de ese tipo:

    [System.Globalization.CultureInfo]::GetCultures([System.Globalization.CultureTypes]::AllCultures) 
    
  • continuación, puede utilizar el nombre o número de la cultura que le interesa con el método GetCultureInfo para recuperar el valor que está buscando:

    $culture = [System.Globalization.CultureInfo]::GetCultureInfo(1033) 
    $culture = [System.Globalization.CultureInfo]::GetCultureInfo('en-US') 
    

NB: Gracias a la conversión implícita, sólo podía pasar el nombre de cultura o número (es decir, como una cadena o entero) en el método de Set-Culture que automáticamente se convierte en el valor CultureInfo esperado.

+6

Ehh ... no. Esto no funciona Después de cambiar el cultivo, lea los valores. $ host o [System.Threading.Thread] :: CurrentThread.CurrentUICulture no se actualizará. Probado con PowerShell 5 en Win 10 y servidor 2012. –

+0

+1 para "esto no funciona" ... al menos no para cambiar la cultura de host. Sin embargo, si saca un '(Get-Date) .ToString()' al final de la función, entonces debería ver que la función devuelve una fecha en la cultura especificada. –

Cuestiones relacionadas