С документы для [cultureinfo]::currentculture]
(выделение добавлено):
Получает или задает объект CultureInfo, представляющий культуру , используемую текущим потоком .
Таким образом, изменение по конструкции вступает в силу для всего потока, а не только для вашего сценария, и сохраняется в течение всего времени существования потока (после выхода из сценария) или до тех пор, пока вы не измените его снова.
Поэтому, если вы хотите, чтобы ваша культура изменилась на в области , вы должны вручную :
- заранее сохранить текущую культуру
- восстановить эту культуру позже.
Предупреждение :
В Windows PowerShell ,Культура автоматически сбрасывается до значения запуска , но только в командной строке после каждого вызова команды или сценария;напротив, если один сценарий вызывает другой, и вызываемый объект изменяет текущую культуру, это изменение остается в силе для вызывающего сценария.
В отличие от этого, PowerShell Core ведет себяи никогда не сбрасывает текущую культуру автоматически.
Обратите внимание, что поведение аналогично использованию Set-Location
(cd
) для изменения текущего местоположения (каталога), что также влияет на весь поток, как это происходитв cmd.exe
пакетном файле (кроме случаев, когда вы используете setlocal
), но, например, не в сценарии Bash.
В PowerShell файлы сценариев (*.ps1
) запустить в процессе , как и пакетные файлы (*.cmd
, *.bat
) в cmd.exe
, тогда как POSIX-подобные оболочки, такие как сценарии Bash, запускаются в дочернем элементе процесс , который неявно и неизменно ограничивает изменения среды такими сценариями.