Popular Posts(last24hours)

【要改善】ExcelのVBAボタンからWinSCPを起動してLinuxサーバから今日日付がファイル名に付いた指定のログをダウンロードする

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

Excel上のボタンを押せば誰でも指定のファイルをダウンロードできるようなものをと思い。

ExcelVBAのコード

今日日付のフォルダを作ってその中に指定のファイル名のログをダウンロードするWinSCPを起動する。「vbDirectory」でフォルダの有無をチェックして、すでにフォルダがある場合は作成しない(便利ね~)。
※Shellの中でWinSCPのログのパスを「folder_path」を使ってもっと短くしたかったのだが、うまくShellの中に入れ込められてないのでこれで動くが後で修正する。

Sub 案件1の本日日付フォルダにログをダウンロード()
  Dim folder_path As String
  Dim today_date As String
  today_date = Format(Date, "yyyymmdd")
  folder_path = "C:\work\temp"
  folder_path = folder_path & "\" & today_date & "_案件1"
  If Dir(folder_path, vbDirectory) = "" Then
    MkDir folder_path
  End If

Shell "C:\Program Files (x86)\WinSCP\WinSCP.exe /console /log=""C:\work\temp" & "\" & today_date & "_案件1\" & today_date & "_scp.log"" /script=C:\work\winscp_dl.txt", 1

End Sub

 

winscpのスクリプト

winscp_dl.txt(パスワード認証の場合)

option batch off
option confirm on
open user:password0@サーバ名
option transfer binary

cd /hoge/logdir
get hoge_%TIMESTAMP#yyyymmdd%.log C:\work\temp\%TIMESTAMP#yyyymmdd%_案件1

close

exit

winscp_dl.txt(鍵認証の場合)

option batch off
option confirm on
open scp://ユーザー名@サーバ名 -privatekey=”C:\path\to\hoge.ppk”
option transfer binary

cd /hoge/logdir
get hoge_%TIMESTAMP#yyyymmdd%.log C:\work\temp\%TIMESTAMP#yyyymmdd%_案件1

close

 

準備ができたら
Excel上にボタンを作成して
ボタンにExcelVBAマクロを登録すればボタンで使えます。

以上

【PR】最近楽天で購入した商品

こちらもなかなかのボリューム。子供が綺麗に折り紙を折れるようになると、成長が感じられて、嬉しい。かんたん・かわいい・楽しい! 決定版 おりがみ大図鑑 大ボリューム!190作品がオールカラーでわかる! [...]

この手のやつは、いったいどういう仕組みで絵とペンの音声をマッチさせているのか不思議。もの凄いボリュームなので、子供も飽きずに楽しめます。音で学べる!英語ことば図鑑5000 タッチペンつき [ アレン玉 [...]

いつの間にか、黎明篇の続きが!前回で完結したとばかり思っていたので、これは嬉しい。そして、めちゃくちゃ面白い!宇宙戦艦ヤマト 黎明篇 第2部 マリグナント・メモリー [ 塙 龍之 ]価格:1,650円 [...]