私にはスクリプトの正式な経歴がないので、無知であることを前もってお詫びします。vbscriptを使用してインターネットからファイルの場所にcsvファイルをダウンロードする方法を見つけようとしています。Webを参照した後、URLと新しいファイルの場所/名前の引数を使用して、これを1つのケースで正常に実行できます。ただし、これをforループにまとめて何度も繰り返すようにしたいので、コマンドラインに引数を追加してもうまくいかないようです。変数にピリオドを含めることはできません。コマンドラインに貼り付けることなく、コンマ区切りの引数をプルする方法はありますか?または、変数にピリオドがある場合(Webページのように)、変数をforループにパッケージ化する方法はありますか?
これは、コマンドラインの2つの引数として単一のWebサイトとファイルの場所を追加した場合に機能するようです。
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.Write BinaryGetURL(Wscript.Arguments(0))
BinaryStream.SaveToFile Wscript.Arguments(1), adSaveCreateOverWrite
Function BinaryGetURL(URL)
Dim Http
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET", URL, False
Http.Send
BinaryGetURL = Http.ResponseBody
End Function
変数配列に基づいてパラメーターを作成しようとすると、これを機能させることができません。構文エラー(変数のピリオド)を伴う「関数」で失敗するようです:
myWebSite = split(commaseparateURLs,",")
myFileLocation = split (commaseparateFiles,",")
num_WebSite = UBound(myFileLocation)
for i = 0 to num_WebSite
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeBinary
BinaryStream.Open
BinaryStream.Write BinaryGetURL(myWebSite(i))
BinaryStream.SaveToFile myFileLocation(i), adSaveCreateOverWrite
Function BinaryGetURL(URL)
Dim Http
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET", URL, False
Http.Send
BinaryGetURL = Http.ResponseBody
End Function
Next
これを少し少し動かすと役に立ちます。ありがとう!