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

时间:2013-02-06 07:25:46

标签: powershell sta powershell-v1.0

我在PowerShell中非常尴尬,我只在家里使用它来完成我自己的简单任务,在我的Windows XP下没有可用的升级到PS2。下一个测试显示我的PowerShell 1.0默认使用MTA模式。

[threading.thread]::CurrentThread.GetApartmentState()

这样的召唤就像......

PowerShell.exe –STA c:\scripts\file.ps1

...总是因错误而失败:

  

在一元运算符' - '之后缺少表达式。在行:1 char:2   + -S<<<< TA c:\ scripts \ file.ps1

看起来我的PS1无法识别-STA开关。我做错了什么?有没有办法在PS1中以STA模式运行我的脚本?

2 个答案:

答案 0 :(得分:1)

命令中STA之前的短划线字符为" - " Unicode U + 2013" En Dash"它应该在哪里" - " Unicode U + 002D" Hyphen-Minus"。您可以在浏览器控制台(F12)中使用此JavaScript函数进行尝试:

function getHex(character) {
    return "0x" + character.charCodeAt(0).toString(16);
}

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

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

新版本的PowerShell将识别破折号的两个字符。

答案 1 :(得分:0)

C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -Sta -File c:\ scripts \ file.ps1