我有一个“古怪”的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程序。
答案 0 :(得分:2)
这是编码问题。该文件是双字节字符编码(例如,UCS-2大端),但ISE将其解释为单字节字符(例如,UTF-8)。通常,当缺少字节顺序标记(BOM)或编辑器或程序不理解双字节编码时会发生这种情况。
在Notepad ++中打开文件,然后使用“编码”菜单将其更改为UTF-8。没有BOM的UTF-8也没问题。