如何在PowerShell 1.0中使用STA模式?

如何在PowerShell 1.0中使用STA模式?,powershell,sta,powershell-1.0,Powershell,Sta,Powershell 1.0,我在PowerShell中非常笨拙,我只在家里使用它,在我的Windows XP下执行我自己的简单任务,那里没有可用的PS2升级。下一个测试显示我的PowerShell 1.0默认使用MTA模式 [threading.thread]::CurrentThread.GetApartmentState() 像这样的电话 PowerShell.exe –STA c:\scripts\file.ps1 …始终失败并出现错误: 一元运算符“-”后缺少表达式。第1行字符数:2 +-SC:\Windows

我在PowerShell中非常笨拙,我只在家里使用它,在我的Windows XP下执行我自己的简单任务,那里没有可用的PS2升级。下一个测试显示我的PowerShell 1.0默认使用MTA模式

[threading.thread]::CurrentThread.GetApartmentState()
像这样的电话

PowerShell.exe –STA c:\scripts\file.ps1
…始终失败并出现错误:

一元运算符“-”后缺少表达式。第1行字符数:2
+-SC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe-Sta-文件C:\scripts\File.ps1

命令中Sta前面的破折号字符是“–”Unicode U+2013“En dash”,应该是“-”Unicode U+002D“连字符减号”。您可以在浏览器控制台(F12)中使用此JavaScript函数进行尝试:

也许您是从网页、PDF或Word文档中复制的。尝试键入命令而不是“复制/粘贴”,它将起作用


新版本的PowerShell将识别dash的两个字符。

在这里,您可以下载适用于XP的PowerShell 2.0:在这里,您可以找到适用于v1.0中sta的有用内容:@C.B.-PS2不适用于64位XP(我的情况),我要提到这一点,但非常感谢您的评论,你证实了我的担心,我遇到了大麻烦。虽然你的回答是正确的,但这并不是PowerShell v1无法启动-sta开关的原因。。。PowerShell v1不支持-sta开关。
function getHex(character) {
    return "0x" + character.charCodeAt(0).toString(16);
}

getHex('–'); // 0x2013
getHex('-'); // 0x2d