usefull links

  1. vbscript
  2. powershell
  3. batch
  4. uwsc
  5. MDT
  6. Netwoking
Advertisements

get links of a website, vbs

‘————————————————————————————–

‘ Webページダウンロードスクリプト
‘ (指定したURLのHTMLをダウンロードする)

‘ 注意点 スクリプト実行前にすべてのInternet Explorerを終了してください。

‘ 動作確認環境 Windows XP SP2 ,Internet Explorer 6 SP2

‘————————————————————————————–

‘*********************************************************************

‘ メイン処理

‘*********************************************************************

‘ ダウンロードするページの URLの定義 (配列で複数のURLを指定できます)
Dim aURLList(256)

aURLList(0) = “http://d.hatena.ne.jp/haradago/?of=1”
aURLList(1) = “http://d.hatena.ne.jp/haradago/?of=2”
aURLList(2) = “http://d.hatena.ne.jp/haradago/?of=3”

‘ ファイルを保存するフォルダ名の定義(末尾に\を付ける事!!)
sSaveToFolder = “D:\download\”

Dim sURL
Dim bLoadComplete

Set Ie = WScript.CreateObject(“InternetExplorer.Application”, “IE_”)
Set oFS = WScript.CreateObject(“Scripting.FileSystemObject”)

‘定義したURLの終端までループ
For Each sURL In aURLList

If sURL = “” Then
Exit For
End If

bLoadComplete = False

‘ ページの取得と保存
GetWebDocument (sURL)

‘IEよりHTMLを取得
sSrcHTML = Ie.Document.all.tags(“HTML”)(0).innerHTML

‘取得したHTMLを名前を付けて保存する
SaveToFile GetFileNameToSave(sSaveToFolder,sURL), sSrcHTML

Next

Wscript.Echo “DownLoad完了”

‘*********************************************************************

‘ サブルーチン

‘*********************************************************************
‘ 保存するファイル名を編集する
Function GetFileNameToSave(sFolderName, sFileName)

‘ ファイル名に使用しない文字を除去
sFileName = Replace(sFileName, “?http://”, “”)
sFileName = Replace(sFileName, “/”, “_”)
sFileName = Replace(sFileName, “:”, “_”)
sFileName = Replace(sFileName, “?”, “_”)

GetFileNameToSave = sFolderName & sFileName & “.html”

End Function

‘ HTMLをテキストをファイルに保存する
Sub SaveToFile(sFileName, sHTMLSrc)

On Error Resum Next ‘ページがなかった場合、ErrNumber=5が発生するため追加

Set oTF = oFS.CreateTextFile(sFileName, True)
oTF.Write sHTMLSrc
oTF.Close
End Sub

‘ 指定したURLをロード
Sub GetWebDocument(sURL)

bLoadComplete = False

‘指定したページを読み込む
Ie.Navigate (sURL)

‘ロードが完了するまでWait
Do
WScript.Sleep 10
Loop While bLoadComplete = False

End Sub
‘*********************************************************************

‘ IEのイベント

‘*********************************************************************
‘ロード完了イベント
Sub IE_DocumentComplete(pdisp,surl)
bLoadComplete = True
End Sub

‘IEの終了イベント
Sub IE_OnQuit
Set Ie = Nothing
WScript.Quit
End Sub

download file using vbs

# パラメータとして、ファイルを保存するパス、ダウンロードファイル・リストのファイル名を宣言
Param([String]$path=’C:\Scripts’, [String]$file=’list.dat’)
# ファイルをダウンロードするためのWebClientオブジェクトを生成
$cli = New-Object System.Net.WebClient
# ファイルリストから順にURLを抽出
# Get-Contentコマンドレットはファイルの内容を改行単位に読み込み、結果を文字列配列として返す。つまり、ここではGet-Contentコマンドレットによって得られた読み込み内容(=list.datで定義されたURLの配列)を、foreachループで順番に取得/処理しているというわけだ。
foreach($url in Get-Content $file){
# 取り出したURLからファイル名を取り出し、変数$fileにセット
$uri = New-Object System.Uri($url)
$file = Split-Path $uri.AbsolutePath -Leaf
# 指定されたURLからファイルをダウンロードし、同名のファイル名で保存
$cli.DownloadFile($uri, (Join-Path $path $file))
$file + “をダウンロード完了しました。”
}

02.ウィンドウ情報表示

//
PASSWD = INPUT(“パスワードを入れてください”,””,1)
IFB PASSWD <> “s”
EXITEXIT
ENDIF
while true
id = GETID(GET_FROMPOINT_WIN)
if id = GETID(GET_BALLOON_WIN) then continue
moji = STATUS(id, ST_TITLE) + ” , ” + STATUS(id, ST_CLASS)
Balloon(moji, G_MOUSE_X+8, G_MOUSE_Y, 3)
Sleep(0.2)
Wend

00.windowpicker-1

//スクリプトここから
//
PASSWD = INPUT(“パスワードを入れてください”,””,1)
IFB PASSWD <> “s”
EXITEXIT
ENDIF
while 1
fukidasi(“Alt+Clickでウインドウの情報を取得します”)
ifb GETKEYSTATE(VK_ALT) and GETKEYSTATE(VK_LBUTTON) then
fukidasi(“情報を取得しています”)
id=GETID(GET_FROMPOINT_WIN)
fname = GET_CUR_DIR+”\windowPicker-“+STATUS(id,ST_CLASS)+”.txt”
ifb STATUS(id,ST_CLASS)=”#32770″
fname = GET_CUR_DIR+”\windowPicker-“+STATUS(id,ST_TITLE)+”.txt”
endif
fid = FOPEN(fname,F_WRITE)
fput(fid, “st_title=” +STATUS(id,ST_TITLE))
fput(fid, “st_class=” +STATUS(id,ST_CLASS))
fput(fid, “st_parent=” +STATUS(id,ST_PARENT))
fput(fid, “st_path=” +STATUS(id,ST_PATH))
fput(fid,””)
fputAllitem(fid,id,ITM_BTN,”<<ITM_BTN>>”)
fputAllitem(fid,id,ITM_LIST,”<<ITM_LIST>>”)
fputAllitem(fid,id,ITM_TAB,”<<ITM_TAB>>”)
fputAllitem(fid,id,ITM_MENU,”<<ITM_MENU>>”)
fputAllitem(fid,id,ITM_TREEVEW,”<<ITM_TREEVEW>>”)
fputAllitem(fid,id,ITM_LSTVEW,”<<ITM_LSTVEW>>”)
fputAllitem(fid,id,ITM_STATIC,”<<ITM_STATIC>>”)
fputAllitem(fid,id,ITM_STATUSBAR,”<<ITM_STATUSBAR>>”)
fputAllitem(fid,id,ITM_TOOLBAR,”<<ITM_TOOLBAR>>”)
fputAllitem(fid,id,ITM_ACCCLK,”<<ITM_ACCCLK>>”)
fputAllitem(fid,id,ITM_ACCTXT,”<<ITM_ACCTXT>>”)
fukidasi(“ファイル保存中…”)
fclose(fid)
exec(“notepad.exe “+ fname)
CTRLWIN(GetID(fname),ACTIVATE)
else
sleep(0.5)
endif
wend
Procedure fputAllitem(fid,id,item,str)
count=GETITEM(id,item,-1)
if count<1 then exit
fukidasi(“書き込み中”+str)
fput (fid,str)
fput(fid, “count=”+trim(format(count,5)))
for i = 0 to count-1 // -1 -2
fput(fid, trim(format(i,5))+”)” +ALL_ITEM_LIST[i])
next
fput(fid,””)
fend
//スクリプトここまで

00.windowpicker-2

//スクリプトここから
//
PASSWD = INPUT(“パスワードを入れてください”,””,1)
IFB PASSWD <> “”
EXITEXIT
ENDIF
while 1
fukidasi(“Alt+Clickでウインドウの情報を取得します”)
ifb GETKEYSTATE(VK_ALT) and GETKEYSTATE(VK_LBUTTON) then
fukidasi(“情報を取得しています”)
id=GETID(GET_FROMPOINT_WIN)
fname = GET_CUR_DIR+”\windowPicker-“+STATUS(id,ST_CLASS)+”.txt”
ifb STATUS(id,ST_CLASS)=”#32770″
fname = GET_CUR_DIR+”\windowPicker-“+STATUS(id,ST_TITLE)+”.txt”
endif
dontuse=”\/:;*?<#DBL><>|” // ファイルに使用できない文字を除外
for i=1 to length(dontuse)
CheckStr=COPY(dontuse,i,1)
fname=CHGMOJ(fname,CheckStr,””)
next
fid = FOPEN(fname,F_WRITE)
fput(fid, “st_title=” +STATUS(id,ST_TITLE))
fput(fid, “st_class=” +STATUS(id,ST_CLASS))
fput(fid, “st_parent=” +STATUS(id,ST_PARENT))
fput(fid, “st_path=” +STATUS(id,ST_PATH))
str=STATUS(id,ST_TITLE)
dontuse=”\/:.;*?<#DBL><>|”
for i=1 to length(dontuse)
CheckStr=COPY(dontuse,i,1)
str=CHGMOJ(str,CheckStr,””)
next
if length(str)>4 then str=copy(str,1,4) // 4文字より大きければ強制的に4文字に
id_name=TOKEN(” “,str)+”id”
fput(fid,id_name+”=GetID(<#DBL>”+STATUS(id,ST_TITLE)+”<#DBL>,<#DBL>”+STATUS(id,ST_CLASS)+”<#DBL>)”)
fput(fid,”exec(<#DBL>”+STATUS(id,ST_PATH)+”<#DBL>)”)
fput(fid,””)
fputAllitem2(fid,id,ITM_BTN,”<<ITM_BTN>>”,id_name,”CLK_BTN”)
fputAllitem2(fid,id,ITM_LIST,”<<ITM_LIST>>”,id_name,”CLK_LIST”)
fputAllitem2(fid,id,ITM_TAB,”<<ITM_TAB>>”,id_name,”CLK_TAB”)
fputAllitem2(fid,id,ITM_MENU,”<<ITM_MENU>>”,id_name,”CLK_MENU”)
fputAllitem2(fid,id,ITM_TREEVEW,”<<ITM_TREEVEW>>”,id_name,”CLK_TREEVEW”)
fputAllitem2(fid,id,ITM_LSTVEW,”<<ITM_LSTVEW>>”,id_name,”CLK_LSTVEW”)
fputAllitem2(fid,id,ITM_ACCCLK,”<<ITM_ACCCLK>>”,id_name,”CLK_ACC”)
fputAllitem(fid,id,ITM_STATIC,”<<ITM_STATIC>>”)
fputAllitem(fid,id,ITM_STATUSBAR,”<<ITM_STATUSBAR>>”)
fputAllitem(fid,id,ITM_TOOLBAR,”<<ITM_TOOLBAR>>”)
fputAllitem(fid,id,ITM_ACCTXT,”<<ITM_ACCTXT>>”)
fukidasi(“ファイル保存中…”)
fclose(fid)
exec(“notepad.exe “+ fname)
CTRLWIN(GetID(fname),ACTIVATE)
else
sleep(0.5)
endif
wend
Procedure fputAllitem(fid,id,item,str)
count=GETITEM(id,item,-1)
if count<1 then exit
fukidasi(“書き込み中”+str)
fput (fid,str)
fput(fid, “count=”+trim(format(count,5)))
for i = 0 to count-1 // -1 -2
fput(fid, trim(format(i,5))+”)” +ALL_ITEM_LIST[i])
next
fput(fid,””)
fend
Procedure fputAllitem2(fid,id,item,str,IDname,clkstr)
count=GETITEM(id,item,-1)
if count<1 then exit
fukidasi(“書き込み中”+str)
fput (fid,str)
fput(fid, “count=”+trim(format(count,5)))
for i = 0 to count-1 // -1 -2
str=”clkitem(“+IDName+”,<#DBL>”+ALL_ITEM_LIST[i]+”<#DBL>,”+clkstr+”)”
fput(fid, str)
next
fput(fid,””)
fend
//スクリプトここまで