powershell命令没有在.bat文件中运行?

时间:2012-10-01 01:24:17

标签: shell powershell path

我正在尝试制作一个简单的脚本来设置我的gcc变量。作为.bat文件。

变量设置如下

$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin"

当我输入/粘贴到电源外壳时运行正常。

但是当我粘贴到myscript.bat脚本中并通过powershell运行时,我收到此错误:

C:\Users\Brett\Compilers>"$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin""
The filename, directory name, or volume label syntax is incorrect.
PS C:\Users\Scruffy\Compilers>

3 个答案:

答案 0 :(得分:5)

PowerShell是Windows命令行(cmd.exe)

的独立执行环境

如果要从批处理文件运行powershell命令,则需要保存powershell脚本(.ps1)并将其作为命令行参数传递给powershell.exe。

示例:

powershell.exe -noexit c:\scripts\test.ps1

More Information is available here on Microsoft TechNet

答案 1 :(得分:1)

通常,将批处理内容留给.BAT文件并将PowerShell内容放入.ps1文件中。

我可以在这里复制您的结果 - 但这些是可以预期的。 Cmd.exe看到一个字符串然后是一个路径然后变得非常困惑,因为语法不是命令提示符可以处理的语法。所以它给出了错误信息。

如果要在路径中添加内容,那么为什么不将语句放在.ps1脚本文件中呢?

答案 2 :(得分:0)

正如其他人所说,您需要将代码保存在.ps1文件中,而不是.bat。

这一行(来自Setting Windows PowerShell path variable)将起到作用:

$env:Path = $env:Path + ";C:\Users\Brett\Compilers\MinGW\bin"

甚至更短:

$env:Path += ";C:\Users\Brett\Compilers\MinGW\bin"