Powershell'不被识别为内部或外部命令,可操作程序或批处理文件

时间:2015-04-21 16:32:36

标签: windows powershell visual-studio-2013

我正在尝试运行powershell -Command来执行PowerShell文件作为Visual Studio 2013中的后期构建事件 但我得到了 Powershell' is not recognized as an internal or external command, operable program or batch file

错误输出窗口和

Powershell -Command exited with code 9009 error

完整错误消息:

'Powershell' is not recognized as an internal or external command,
10>  operable program or batch file.
10>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: The command "echo "C:\dev\tfs\Main\Shared\AggregationComponents\GenerateSchema.cmd"
10>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: call "C:\dev\tfs\Main\Shared\AggregationComponents\GenerateSchema.cmd"
10>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: echo "Move the PhoenixData namespace schema suffixing it"
10>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: Powershell -Command "C:\dev\tfs\Main\Shared\AggregationComponents\MoveAndRenameXsds.ps1 'C:\dev\tfs\Main\Shared\AggregationComponents\bin\Debug\' 'C:\dev\tfs\Main\Shared\AggregationComponents\..\PublishedAnalyticsXsds' '.Aggregation'"" exited with code 9009.
========== Rebuild All: 8 succeeded, 1 failed, 1 skipped ==========

5 个答案:

答案 0 :(得分:41)

听起来你错过了一个环境变量。

将此添加到您的Path环境变量:

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

OR

将您的脚本更改为:

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\powershell.exe -Command "your command"

答案 1 :(得分:5)

您只需要将其添加到您的环境变量中,只需按照以下两个简单步骤即可:

1.在搜索栏中写入env

右键开始按钮 -> 系统 -> 高级系统设置 -> 环境变量... -> 选择 PATH

2.点击新建按钮,添加如下路径:

C:\WINDOWS\System32\WindowsPowerShell\v1.0\

%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\


write env in the search bar choose path click Ok

答案 2 :(得分:2)

从批处理文件的开头删除BOM字节或将其编码转换为ANSI。 BOM对待系统以为您使用了不可用的命令。

答案 3 :(得分:0)

我的错误只是我忘记以管理员身份运行Visual Studio /命令提示符。

答案 4 :(得分:0)

试试

'%SYSTEMROOT%\\System32\\WindowsPowerShell\\v1.0\\powershell.exe tracert google.com'

可能需要 \\ 而不是 \