我编写了一个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做到这一点?欢迎任何建议!
答案 0 :(得分:0)
如果将其他两行转换为它们的原样,它们似乎不是真正的命令。
#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"