Здесь было описано, как запустить скрипт в другой культуре Using-Culture
Но для ком-объектов это не сработало.Пример: если вы создадите файл Excel с "= 1/3" в ячейке "A1" и попытаетесь получить значение этой ячейки из PS, используя другую культуру, результат будет таким же
function test {
[Microsoft.Office.Interop.Excel.ApplicationClass]$excel = New-Object -ComObject "Excel.Application"
$excel.visible = $false
$excel.Application.DisplayAlerts = $false
$wbk = $excel.Workbooks.Open("d:\tmp\test.xls")
$sheeet=$wbk.Worksheets.Item(1)
$range = $sheeet.Cells.Item(1,1)
Write-Host $sheeet.Range("A1").Text
$excel.Quit()
$wbk = $Null
$sheeet = $Null
$range = $Null
$excel = $Null
[GC]::Collect()
}
Using-Culture -Culture en-US -Script {test} # 0,333333 But expect 0.333333
Using-Culture -Culture ru-RU -Script {test} # 0,333333
Длинная историяКороче говоря, как запустить офисное приложение в другой культуре? Спасибо!
Условия: Windows Xp SP3, Office 2003, PowerShell 2.0