2012-11-19 95 views
0

我试图通过PowerShell来运行下面的命令:如何将一个PowerShell变量传递给CMD命令?

schtasks /query /s $compname /v /fo csv | ConvertFrom-Csv 

$ COMPNAME在PowerShell脚本的第一部分设置,但不能传递到这样的命令。例如,当我尝试传递$ localhost时,出现以下错误:

ERROR: Invalid syntax. Value expected for '/s'. 
Type "SCHTASKS /QUERY /?" for usage. 

有没有办法将变量传递到此命令中?我不打算改变到PowerShell的本地方式访问计划任务(通过COM对象)。

+0

您的意思是localost(没有美元符号)。它适用于我 –

+0

@ShayLevy不,我不想使用本地主机,我只是用它作为例子。我有一个在powershell脚本中设置的变量($ compname)。有没有办法在schtasks命令中使用该变量的值? – EGr

回答

0

为我工作,在v2中进行测试。如果将变量放在双引号中(例如“$ compname”),会有帮助吗?

$compname = 'localhost' 
schtasks /query /s $compname /v /fo csv | ConvertFrom-Csv 
+0

我在一个带变量的脚本中以同样的方式做schtasks,它也适用于我... OP应该确保'$ compname'在它到达该行时确实有一个值。 – SpellingD

+0

我认为@SpellingD说的是对的,它一定没有价值。它现在似乎在工作。谢谢! – EGr

0

试试这个:

Invoke-Expression -Command "schtasks /query /s $compname /v /fo csv" | ConvertFrom-Csv 
相关问题