WSHでFTP使おうとすると、FTPコマンドをWScript.ShellでRunする、
みたいなのしか無いかと思ってましたが、
Shell.Appilcationで素敵に解決できるみたいです。
Shell.Application は Explorer 自身みたいなObject。
んー、確かに良く考えると Explorer で普通に
FTPの内容見れたりアップロードできたりするもんね。
それを script から使う、と。
こんな感じ。
| strSrc = WScript.Arguments(0)
strDest = "ftp//:user:pass@yourserver/yourdirectory/"
With CreateObject("Shell.Application")
Set objDest = .NameSpace(strDest)
For Each objItem In .NameSpace(strSrc).Items
objDest.CopyHere objItem
Next
End With
|
CopyHere は、非同期実行らしいので、でかいファイルを沢山Uploadすると時は、
適当にsleepするか、アップロード状況を確認する必要があるっぽい。
CopyHere の第二引数には以下が指定できるみたい。
| Const FOF_ALLOWUNDO = &H40
Const FOF_FILESONLY = &H80
Const FOF_NOCONFIRMATION = &H10
Const FOF_NOCONFIRMMKDIR = &H200
Const FOF_RENAMEONCOLLISION = &H8
Const FOF_SILENT = &H4
Const FOF_SIMPLEPROGRESS = &H100
|
なるほどねー。
ちなみに、逆にやればFTPダウンロードになります。
作成日 2007-05-18 (金) 23:27:53
Tag: WSH