1
私は、ゲーム「Killing Floor 2」用にサーバーを設定するプロセスを自動化するスタンドアロンのバッチファイルを作成しようとしています。これを行うには、必要なリソースにアクセスするためにPowerShellスクリプトを作成して実行する必要があります。これまでのところ私はこのバッチ付きのpowershellスクリプトの作成と実行
@echo off
del script.ps1
(echo $url = "https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip") >> script.ps1
(echo $output = "$PSScriptRoot\steamcmd.zip") >> script.ps1
(echo $start_time = Get-Date) >> script.ps1
(echo $wc = New-Object System.Net.WebClient) >> script.ps1
(echo (New-Object System.Net.WebClient).DownloadFile($url, $output)) >> script.ps1
(echo Write-Output "Time taken: $((Get-Date).Subtract($start_time).Seconds) second(s)") >> script.ps1
(echo Add-Type -AssemblyName System.IO.Compression.FileSystem) >> script.ps1
(echo function Unzip) >> script.ps1
(echo {) >> script.ps1
(echo param([string]$zipfile, [string]$outpath)) >> script.ps1
(echo [System.IO.Compression.ZipFile]::ExtractToDirectory($zipfile, $outpath)) >> script.ps1
(echo }) >> script.ps1
(echo Unzip "$output" "$PSScriptRoot") >> script.ps1
PowerShell.exe -NoProfile -Command "& {Start-Process PowerShell.exe -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File script.ps1 -Verb RunAs'}"
timeout /t 5
SteamCmd +login anonymous +force_install_dir ./kf2_ds +app_update 232130 +exit
cd kf2_ds
start kf2server.bat
はしかし、PowerShellスクリプトの書き込み時に、私は次のエラー
.DownloadFile($url was unexpected at this time.
にこの作業を行う方法上の任意のアイデアやこれを達成するためのより良い方法を取得していますか?
多量のエコーで戦うのではなく、[バッチ+ PowerShellハイブリッド](http://www.dostips.com/forum/viewtopic.php?f=3&t=5526)フォーマットに興味があるかもしれません。一時的な.ps1スクリプトを作成します。 [この記事](http://www.dostips.com/forum/viewtopic.php?p=45095#p45095)は、私の好みの方法を示しています。ちなみに、なぜあなたは '$ wc'を定義していますが、それを使うことはありませんか? – rojo
$ wcは以前のバージョンのスクリプトから残されていました。私はそれを削除するために思い出したので、それを指摘していただきありがとうございます。 –
批判的ではありませんが、好奇心はありませんが、引数を付けてPowerShellスクリプトを直接呼び出すのはどうですか?デバッグするのは簡単でしょうか? – Esperento57