Este team de trabajo ha estado largas horas buscando soluciones a tus preguntas, te compartimos la soluciones por eso deseamos servirte de gran apoyo.
Solución:
-
(a) Para programas externos tal como
netstat.exe
lamentablemente hay no forma (que yo sepa) de cambiar el idioma de la interfaz de usuario en sesión:-
En Windows Server 2012/Windows 8 y superior, el
Set-WinUILanguageOverride
cmdlet te permite (persistentemente) cambiar el idioma de la interfaz de usuario de todo el sistema para el usuario actualpero eso solo tiene efecto en futuro sesiones de inicio de sesión, es decir, es necesario cerrar sesión y volver a iniciarla o reiniciar. -
Aparte: en Windows Server 2012 / Windows 8 y superior, también está el
Set-Culture
cmdlet, pero es el propósito es no para cambiar el interfaz de usuario cultura (idioma de visualización)pero solo específicos de la cultura configuraciones tales como formatos de fecha, número y moneda. También cambia la configuración. continuamente para el usuario actual, pero solo requiere un nuevo sesión (proceso) para que el cambio surta efecto.
-
-
(B) Para Comandos de PowerShell y Tipos .NETallí es una solución en sesión (no persistente) – suponiendo que los comandos sean conscientes de la cultura y vengan con cadenas localizadas:
-
Colocar
[cultureinfo]::CurrentUICulture
(temporalmente) al nombre cultural deseado (utilice[cultureinfo]::GetCultures('SpecificCultures')
para ver todos los predefinidos); p.ej,[cultureinfo]::CurrentUICulture = 'en-US'
- Complementariamente, es posible que desee configurar
[cultureinfo]::CurrentCulture
(nótese lo que faltaUI
part) también, que determina el número, la fecha, … el formato específico de la cultura. - En versiones anteriores de PowerShell/.NET, deberá establecer estas propiedades en
[System.Threading.Thread]::CurrentThread
en lugar de; p.ej,[System.Threading.Thread]::CurrentThread.CurrentUICulture = 'en-US'
- Complementariamente, es posible que desee configurar
-
Vea la sección inferior para función auxiliar
Use-Culture
que envuelve esta funcionalidad para la ejecución de código mientras una cultura diferente está temporalmente en vigor.
-
Advertencias:
-
Potencia Shell [Core] en sí mismo es no localizado todavía a partir de v7.0; se realiza un seguimiento del progreso en esta edición de GitHub; sin embargo, la solución a continuación funciona con módulos de terceros que se envían con mensajes localizados y contenido de ayuda.
-
debido a un error en Windows PowerShell (Potencia Shell [Core] v6+ es no afectado), cambios en la sesión de
[cultureinfo]::CurrentUICulture
y[cultureinfo]::CurrentCulture
están restablecer automáticamente en el símbolo del sistema, cada vez que un comando termina de ejecutarse; sin embargo, para una secuencia de comandos dada, los cambios permanecen vigentes para toda la secuencia de comandos y sus destinatarios; consulte esta respuesta.
Dando un paso atrás:
Escribí un software que usa la salida de los comandos del sistema (powershell), pero no preví que la salida sería diferente para otros idiomas además del inglés.
Esto es precisamente por qué generalmente vale la pena buscar Nativo de PowerShell soluciones en lugar de llamar programas externos:
En lugar de tener que analizar, posiblemente localizado, textoAl igual que con netstat.exe
por ejemplo, los comandos de PowerShell devuelven objetos cuyas propiedades puede acceder de manera robusta de una manera independiente de la cultura.
Específicamente, Mathias R. Jessen sugiere mirar Get-NetTCPConnection
como una alternativa de PowerShell a netstat.exe
(disponible en Windows Server 2012 / Windows 8 y superior).
Para ayudar con (b)a continuación es función auxiliar Use-Culture
que puede usar de la siguiente manera para ejecutar un bloque de script determinado ( ...
) en el contexto de una determinada cultura (IU):
# Windows PowerShell: emit an error message in *French* (culture 'fr-FR')
# Note: Does not yet work as of PowerShell [Core] 7.0
PS> Use-Culture fr-FR try 1/0 catch "Localized message: $_"
Localized message: Tentative de division par zéro.
Tenga en cuenta que el cambio cultural, tanto para la cultura como para la cultura de la interfaz de usuario, es alcance de comando; es decir, al finalizar el comando, la configuración anterior vuelve a tener efecto.
Función Use-Culture
código fuente:
Nota: El código fue adaptado agradecidamente de esta venerable publicación de blog.
# Runs a script block in the context of the specified culture, without changing
# the session's culture persistently.
# Handy for quickly testing the behavior of a command in the context of a different culture.
# Example:
# Use-Culture fr-FR Get-Date
function Use-Culture
param(
[Parameter(Mandatory)] [cultureinfo] $Culture,
[Parameter(Mandatory)] [scriptblock] $ScriptBlock
)
# Note: In Windows 10, a culture-info object can be created from *any* string.
# However, an identifier that does't refer to a *predefined* culture is
# reflected in .LCID containing 4096 (0x1000)
if ($Culture.LCID -eq 4096) Throw "Unrecognized culture: $($Culture.DisplayName)"
# Save the current culture / UI culture values.
$PrevCultures = [Threading.Thread]::CurrentThread.CurrentCulture, [Threading.Thread]::CurrentThread.CurrentUICulture
try
# (Temporarily) set the culture and UI culture for the current thread.
[Threading.Thread]::CurrentThread.CurrentCulture = [Threading.Thread]::CurrentThread.CurrentUICulture = $Culture
# Now invoke the given code.
& $ScriptBlock
finally
# Restore the previous culture / UI culture values.
[Threading.Thread]::CurrentThread.CurrentCulture = $PrevCultures[0]
[Threading.Thread]::CurrentThread.CurrentUICulture = $PrevCultures[1]
El autor original de este código es @Scepticalist.
Ejecute esto desde la consola PowerShell. Cambiará la referencia cultural a en-US para la sesión actual.
function Set-CultureWin([System.Globalization.CultureInfo] $culture) [System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture ; [System.Threading.Thread]::CurrentThread.CurrentCulture = $culture ; Set-CultureWin en-US ; [system.threading.thread]::currentthread.currentculture
Entonces tienes que usar el comando Get-NetTCPConnection
En lugar de netstat. Para su uso, consulte https://docs.microsoft.com/en-us/powershell/module/nettcpip/get-nettcpconnection?view=win10-ps
valoraciones y reseñas
Tienes la opción de avalar nuestra publicación poniendo un comentario o dejando una puntuación te lo agradecemos.