在运行时插入Powershell程序的其他空间

时间:2015-03-13 14:40:30

标签: powershell

我有一个“古怪”的PowerShell问题,我希望有人可以帮我解决。它可能不是真正的PowerShell问题但是我已经两次使用PowerShell了。

今天,我下载了PSUnit。我按照安装说明进行操作,其中包括将profile.ps1复制到PowerShell配置文件目录中。文件的第一行是:

$PSUnitPath = "D:\Data\PSUnit"

完成安装后,当我在PowerShell ISE中打开PSUnit测试时,出现以下错误:

The term ' $ P S U n i t P a t h ' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct an
d try again.
At C:\Users\sfhostingadmin.SCRUMDOMAIN\Documents\WindowsPowerShell\profile.ps1:3 char:24
+  $ P S U n i t P a t h  <<<<   =   " D : \ D a t a \ P S U n i t "   # M o d i f y   t h i s   p a t h   t o   m a t c h   y o u r   l o c a l   P o w e r S h e l l   i n s t a l l a t i o n   p a t h 
    + CategoryInfo          : ObjectNotFound: ( $ P S U n i t P a t h :String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

注意,它在所有字母之间插入了一个空格。当我在文本编辑器中打开文件时,不存在额外的空格。

我在简单地打开Powershell命令窗口时也会出现此错误,即不涉及ISE的位置。

我不认为这是PSUnit问题。我之前曾在不同的PowerShell程序中使用过PSUnit。我回过头来的唯一方法是打开一个新文件,然后重新输入PowerShell程序。

1 个答案:

答案 0 :(得分:2)

这是编码问题。该文件是双字节字符编码(例如,UCS-2大端),但ISE将其解释为单字节字符(例如,UTF-8)。通常,当缺少字节顺序标记(BOM)或编辑器或程序不理解双字节编码时会发生这种情况。

在Notepad ++中打开文件,然后使用“编码”菜单将其更改为UTF-8。没有BOM的UTF-8也没问题。