【问题标题】:How can I pass a powershell variable into a CMD command?如何将 powershell 变量传递给 CMD 命令?
【发布时间】:2012-11-07 20:38:30
【问题描述】:

我正在尝试通过 powershell 运行以下命令:

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 对象)。

【问题讨论】:

  • 你的意思是 localost(没有美元符号)。它对我有用
  • @ShayLevy 不,我没有尝试使用 localhost,我只是将其用作示例。我有一个在 powershell 脚本中设置的变量 ($compname)。有没有办法在 schtasks 命令中使用该变量的值?

标签: variables powershell cmd scheduled-tasks windows-task-scheduler


【解决方案1】:

为我工作,在 v2 中测试。如果将变量括在双引号中是否有帮助(例如“$compname”)?

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

【讨论】:

  • 我在我的一个带有变量的脚本中以相同的方式执行 schtasks,它也适用于我...OP 应该确保 $compname 在到达该行时实际上具有一个值。
  • 我认为@SpellingD 说的是对的,它一定没有价值。它现在似乎正在工作。谢谢!
【解决方案2】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 2020-09-08
    • 2022-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-01
    • 2018-12-07
    相关资源
    最近更新 更多