SKY-OUTPUT

メーカー子会社勤務のSEがガジェットレビューや仕事で学んだこと、ライフスタイルについて書くブログ。システム開発関係の記事では丁寧に解説していきます。最近はバッチばかり作ってる。

ファイルダウンロードバッチ

今の仕事で、ビルドされたDLLファイルをダウンロードする作業があります。

毎回、サイトにアクセスしてダウンロードするのがめんどくさいと思っていたので、この作業もバッチで自動化することにしました。

これで作業の時間短縮にも繋がるし、タスクスケジューラと組み合わせれば作業を完全に自動化できます。

 

ソースコード 

@echo off
setlocal

rem
bitsadminのパラメーターを設定 set JOB_NAME=DowloadFileBatch
rem ファイル名を指定
set FILE_NAME
=nikkei_stock_average_daily_jp.csv rem ダウンロード先を指定
set DL_FILE_PATH=https://indexes.nikkei.co.jp/nkave/historical/%FILE_NAME% rem 保存先を指定
set SAVE_FILE_PATH=%CD%\%FILE_NAME% rem ダウンロード実行 echo %FILE_NAME%をダウンロードします。
bitsadmin /transfer %JOB_NAME% %DL_FILE_PATH% %SAVE_FILE_PATH%
pause exit

 ※サンプルとして日経プロファイルから日経平均株価の日次データのCSVファイルをダウンロードすることにします。

 

indexes.nikkei.co.jp 

 

ソースコード(Javaコマンドバージョン)

@echo off
setlocal

rem ダウンロード実行
set JAVA_HOME
curl -O https://indexes.nikkei.co.jp/nkave/historical/nikkei_stock_average_daily_jp.csv

pause
exit

 ※Javaをインストールしていること、環境変数にJAVA_HOMEが設定されていることが前提となります。

f:id:SKY-BLOG:20190508204236p:plain

▲実行画面 

 

解説

bitsadminコマンドに/transfer オプションを付け、引数で指定したファイルをバックグラウンドでダウンロードしています。

引数として、ジョブ名ダウンロードするファイルのパス保存先(ファイル名含む)を指定する必要があります。

ジョブ名については特に指定はありませんが、他のジョブと名称が一致すると恐らく実行に失敗するので他のジョブと被らない名前を付けた方が良いと思います。

 

また、端末によるとは思いますが、私が使用しているノートPCの充電が20%未満の時、ダウンロードしてくれなくなりました。

いつでもダウンロードしてほしいので、Java版のソースコードを使用しています。

 

更新履歴

2019年5月6日:初版

2019年5月8日:ソースコード(Javaコマンドバージョン)を追加