【问题标题】:Powershell Invoke-Expressions pausesPowershell 调用表达式暂停
【发布时间】:2017-12-21 10:37:42
【问题描述】:

我编写了一个 Powershell 脚本,它使用 Steam 的命令行工具登录并检查我正在运行的社区服务器的更新。见下文:

$steamcmdFolder = 'C:\download\steam'
$steamcmdExec = $steamcmdFolder+"\steamcmd.exe"
$forceinstall = 'force_install_dir'+$steamcmdFolder
$appupdate = 'app_update 258550'
$cmdOutput = "$steamcmdExec +login anonymous"

do  {

Write-Host Checking for an update....

Invoke-Expression $cmdOutput
Invoke-expression $forceinstall
Invoke-expression $appupdate

} 

while ($Update = 1)

Invoke-Expression 行是我希望按照我拥有它们的顺序执行的单个命令行语句。出于某种原因,第一个 Invoke-Expression 工作正常,但其他的却不行——一切都停止了。我可以在 PowerShell 命令行上输入 $forceinstall 的值,它按预期工作。但是为什么我不能使用 PowerShell 来做到这一点?欢迎提出任何建议!

【问题讨论】:

    标签: powershell


    【解决方案1】:

    如果你把另外两行转换成原来的样子,看起来它们不是真正的命令。

    #Invoke-expression $forceinstall
    Invoke-Expression "force_install_dirC:\download\steam"
    #Invoke-expression $appupdate
    Invoke-Expression "app_update 258550"
    

    查看SteamCMD 文档,您可能希望将其更改为单行命令。

    Invoke-Expression "steamcmd +login anonymous +force_install_dir C:\download\steam +app_update 258550 +quit"
    

    【讨论】:

    • Invoke-Expression 是不必要的。
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 2020-10-06
    相关资源
    最近更新 更多