2012年04月25日


ブログ内メニュー



posted by at 2012-04-25 19:43 | その他 | このブログの読者になる | 更新情報をチェックする

2010年06月27日


VBScript : 自分自身をCscript.exe で実行しなおすには

WScript.FullName には、その時使用された Wscript.exe か Cscript.exe の
フルパスが入っていますので、その内容が Wscript.exe であれば、Cscript.exe
で自分自身を実行して、現在の処理は終了してやります。

引数はそのまま全てを文字列に作りなおして呼び出してやるといいです。
Set WshShell = CreateObject( "WScript.Shell" )

' フルパス
strPath = WScript.FullName
strTarget = Right( strPath, 11 )
strTarget = Ucase( strTarget )

' CSCRIPT.EXE で無い場合
if strTarget <> "CSCRIPT.EXE" then
	' 自分自身ののフルパス
	strMyPath = WScript.ScriptFullName
	strParam = " "
	' 引数を全て読みだして、スペースが含まれていた場合は再度引き渡す
	' 為に " で囲み直しています
	For I = 0 to Wscript.Arguments.Count - 1
		if instr(Wscript.Arguments(I), " ") < 1 then
			strParam = strParam & Wscript.Arguments(I) & " "
		else
			strParam = strParam & """" & Wscript.Arguments(I) & """ "
		end if
	Next
	Call WshShell.Run( "cscript.exe """ & strMyPath & """" & strParam, 3 )
	WScript.Quit

end if

' テストの為 強制的に GUI で結果表示
MsgBox( WScript.FullName )
For I = 0 to Wscript.Arguments.Count - 1
	MsgBox( Wscript.Arguments(I) )
Next

関連する記事

VBScript : WEBWSH : Wscript で実行された場合は Cscript で実行しなおす


posted by at 2010-06-27 12:53 | VBScript | このブログの読者になる | 更新情報をチェックする

2010年04月14日


VBScript : 3メガバイト以下のWEB上のバイナリのダウンロード

比較的小さいファイルをダウンロードするのに問題無く使えます。
( 3メガバイトを超えるようなファイルは別の方法を検討します。)
Function HTTPDownload( strUrl, strPath )

	Dim objSrvHTTP,Stream

	Set objSrvHTTP = CreateObject("Msxml2.ServerXMLHTTP.3.0")
	Set Stream = CreateObject("ADODB.Stream")

	HTTPDownload = True

	on error resume next
	Call objSrvHTTP.Open("GET", strUrl, False )
	if Err.Number <> 0 then
		ErrorMessage = Err.Description
		HTTPDownload = False
		Exit Function
	end if
	on error goto 0

	objSrvHTTP.Send

	Stream.Open
	Stream.Type = 1	' バイナリ
	Stream.Write objSrvHTTP.responseBody
	Stream.SaveToFile strPath, 2
	Stream.Close

End Function

関連する記事

WEBのファイルをコマンドラインからダウンロードするスクリプト
 : httpget.vbs ( 2〜3メガまでが目安 )


タグ:XMLHTTP stream
posted by at 2010-04-14 14:48 | ツール関数 | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。