Jad*_*ias 10 .net powershell internationalization
是否有任何PowerShell等效于:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Run Code Online (Sandbox Code Playgroud)
?或者如何设置强制所有字符串独立于机器配置服从文化?
这是我用于测试其他文化中的字符串/格式的函数:
function Using-Culture (
[System.Globalization.CultureInfo]
$culture = (throw "USAGE: Using-Culture -Culture culture -Script {...}"),
[ScriptBlock]
$script = (throw "USAGE: Using-Culture -Culture culture -Script {...}"))
{
$OldCulture = [Threading.Thread]::CurrentThread.CurrentCulture
$OldUICulture = [Threading.Thread]::CurrentThread.CurrentUICulture
try {
[Threading.Thread]::CurrentThread.CurrentCulture = $culture
[Threading.Thread]::CurrentThread.CurrentUICulture = $culture
Invoke-Command $script
}
finally {
[Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
[Threading.Thread]::CurrentThread.CurrentUICulture = $OldUICulture
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这会奏效:
$currentThread = [System.Threading.Thread]::CurrentThread
$culture = [System.Globalization.CultureInfo]::InvariantCulture
$currentThread.CurrentCulture = $culture
$currentThread.CurrentUICulture = $culture
Run Code Online (Sandbox Code Playgroud)
这个想法来自:
http://blogs.msdn.com/b/powershell/archive/2006/04/25/583235.aspx
对于WinServer2012和Win8,可以使用Set-Culture。作为Set-Culture集文化对你的用户,你必须从打开另一个PowerShell的实例好处。而且,它不会改变正在运行的ps实例的区域性。当然,您可以在当前实例中启动一个新的Powershell实例。这并不是要求的确切内容,而是紧密相关的。
如果他们将其移植回Win7和Server 2008或使其成为Powershell本身的功能,那将会很整洁。