【发布时间】:2019-09-03 08:47:58
【问题描述】:
所以,当我直接在 PowerShell 中运行它时,我的命令运行良好,但当我尝试在我的批处理脚本中使用它时会抛出错误。我正在尝试做的是将目录添加到系统路径,但来自批处理文件(我有理由)。我知道该怎么做,并且成功地做到了,但似乎无法解决这个问题。
我看了一些资料,多条命令用分号隔开,我相信这可能是这里的问题,但如果是,我不知道如何在命令中进行转义。
这是我尝试在批处理文件中使用的命令。
@echo off
powershell "[Environment]::SetEnvironmentVariable('path', "$([Environment]::GetEnvironmentVariable('path', 'machine'));C:\to\a\new\path",'Machine');"
这些是运行时出现的错误。
At line:1 char:106
+ ... , $([Environment]::GetEnvironmentVariable('path', 'machine'));C:\usr\ ...
+ ~
Missing ')' in method call.
At line:1 char:117
+ ... ment]::GetEnvironmentVariable('path', 'machine'));C:\usr\bin,'Machine ...
+ ~
Missing argument in parameter list.
At line:1 char:127
+ ... t]::GetEnvironmentVariable('path', 'machine'));C:\usr\bin,'Machine');
+ ~
Unexpected token ')' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndParenthesisInMethodCall
我真的相信问题只是我试图在字符串中使用的第一个分号。
【问题讨论】:
-
首先,您的代码中有两个
(和三个),因此括号不匹配是可以预料的。您是否不小心将一个命令复制/粘贴到其他内容的中间,因为正如上面的评论所说,我不确定您在这里要做什么。与第二个命令部分。 -
其实我想通了...@Lee_Dailey
-
@Josh 这是因为我引用的内容
-
@AlienDrew - 是的,你的报价......位置很奇怪。 [咧嘴]
标签: powershell batch-file