繁体   English   中英

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

[英]powershell command not running in .bat file?

我正在尝试制作一个简单的脚本来设置我的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>

PowerShell是Windows命令行(cmd.exe)的独立执行环境

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

例:

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

可在Microsoft TechNet上获得更多信息。

通常,将批处理内容保留到.BAT文件中,然后将PowerShell内容放入.ps1文件中。

我可以在这里复制您的结果-但这些是可以预期的。 Cmd.exe看到的是字符串然后是路径,然后由于语法不是命令提示符可以处理的语法而变得非常混乱。 因此,它给出了该错误消息。

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

正如其他人提到的,您需要将代码保存在.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" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM