我正在尝试制作一个简单的脚本来设置我的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>
答案 0 :(得分:5)
PowerShell是Windows命令行(cmd.exe)
的独立执行环境如果要从批处理文件运行powershell命令,则需要保存powershell脚本(.ps1)并将其作为命令行参数传递给powershell.exe。
示例:
powershell.exe -noexit c:\scripts\test.ps1
答案 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"