約 3,163,572 件
https://w.atwiki.jp/lmes2/pages/159.html
ファイルにロックをかける 概要 特定のファイルを、他の作業領域からコミットできないようにする。 前提条件 TortoiseSVN のインストール TortoiseSVN の日本語化 リポジトリの作成 チェックアウトする コミットする 作業領域のコピー 手順 まず、以下のように、作業領域が二箇所あるとする。 not found (370.jpg) 「作業領域A」の「temp.vbs」を右クリック - 「TortoiseSVN」 - 「ロックを取得」 not found (385.jpg) 「ファイルをロックする理由を入力してください」に、理由を書く - 「ok」 not found (386.jpg) ロック完了。 not found (387.jpg) ロックされているか確認を行う。 「作業領域B」から「temp.vbs」を編集、コミットする。 ※ロックがかかっていても、エディタ等によるファイルの編集は可能である。 not found (388.jpg) コミット中にエラーが発生し、ロックがかかっていることがわかる。 not found (389.jpg)
https://w.atwiki.jp/draemonash/pages/81.html
ここを編集 Todo Tips On Error Goto ラベルが使えない(On Error Resume Next は OK) VBA では使えるはずの未定義配列判定用の関数 Sgn() は使えない。 代替方法の一つ目は、初期化直後に要素数 -1 配列として再定義し、判定時には要素数-1=未定義配列として判定する。 二つ目は、On Error を使ってエラー発生を検出する方法。 プログラムを強制終了したい場合は、ESCキーを押し続ければ終了する「場合」がある。 format関数は存在しない。そのため、数値を0埋めしたい場合、String関数を使う必要がある 例)String( 2 - Len(lNum), "0" ) lNum WScript.Shell の .CurrentDirectory の危険性について 上記メソッドは、スクリプトに対するドラッグ&ドロップにて起動した場合ドラッグ元で使用するファイラーのパスになってしまう。 【実験】 プログラム(OutputTest.vbs) MsgBox WScript.CreateObject( "WScript.Shell" ).CurrentDirectory " : " Replace( WScript.ScriptFullName, "\" WScript.ScriptName, "" ) 条件 「C \codes\vbs\a.mp3」を「C \codes\vbs\OutputTest.vbs」に向けて X-Finder からドラッグ&ドロップした場合 出力結果 C \prg_exe\xf11-10 : C \codes\vbs 文字列のバイト数を返却する関数 LenB() は、Unicode のバイト数を返却するため半角文字も2バイトとして返却する。 LebB( "あああ " ) ⇒ 8 構文 「~」は改行を示す。 【変数強制定義】Option Explicit 【変数定義①】Dim 変数名 【変数定義②】Private 変数名 【変数定義③】Public 変数名 【変数定義④】ReDim 変数名 【配列定義】Dim 配列変数名(最終要素番号) 要素数ではなく最終要素番号! 【定数定義】Const 定数名 【関数定義】Function FuncA( ByVal Val1, ByRef Val2 ) ~ FuncA = Val1 ~ End Function 【関数呼出】Call FuncA() 【クラスインスタンス生成】Dim oLog ~ Set oLog = New LogMng 【クラスインスタンス破棄】Set oLog = Nothing 【ブロック脱出(Sub/Function/For/Do)】Exit (Sub|Function|For|Do) 【連続コマンド実行】Dim sStr sStr = "abc" 【プログラム終了】WScript.Quit 【if】If iVal = 1 Or iVal = 2 Then ~ ElseIf iVal = 3 Then ~ Else ~ End If 【if(空オブジェクト確認)】If objTest Is Nothing Then ~ Else ~ End If 【switch】Select Case iVal ~ Case 1 ~ Case Else ~ End Select 【for】For iVal1 = 1 To 3 [Step 1] ~ Next 【for each】For Each Value in Values ~処理~ Next 【while】Do ~(条件式=真)~ Loop While 条件式 【do while】Do While 条件式 ~(条件式=真)~ Loop 【do until】Do Until 条件式 ~(条件式=偽)~ Loop 【with】With オブジェクト名 ~ End With 【コメント】 コメント 【入力】sStr = InputBox( "テキストを入力してください", "title", "default value" ) 【出力①】MsgBox "Hello world" 【出力②】WScript.Echo "Hello world" 【出力③】Wscript.StdOut.WriteLine "Hello world" 出力先は標準出力。ただし、この方法は cscript.exe からの起動に限られる。例)cscript.exe xxx.vbs 【確認処理】Dim vAnswer ~ vAnswer = MsgBox("処理を継続しますか?", vbOKCancel, "タイトル") 第二引数は表示ボタンの種類を指定。ボタンの種類は こちら 参照。 【正規表現】サンプルコード参照 【連想配列 定義】Dim oPriceOfFruit ~ Set oPriceOfFruit = CreateObject("Scripting.Dictionary") 【連想配列 キー/項目追加】oPriceOfFruit.Add "リンゴ", "100円" 【連想配列 存在確認】oPriceOfFruit.Exists("リンゴ") 【連想配列 キー取得(For Each)】For Each vKey In oPriceOfFruit ~ MsgBox vKey ~ Next vKey は variant 型 【連想配列 項目取得(キー)】oPriceOfFruit.Item("リンゴ") 【連想配列 キー取得(インデックス)】oPriceOfFruit.Keys()(0) 0オリジン(アクセスが遅すぎるので注意!) 【連想配列 項目取得(インデックス)】oPriceOfFruit.Items()(0) 0オリジン(アクセスが遅すぎるので注意!) 【連想配列 キー置換】oPriceOfFruit.Key("リンゴ") = "りんご" 【連想配列 キー関連付け】oPriceOfFruit.Item("リンゴ") = "200円" 【連想配列 キー/項目数取得】oPriceOfFruit.Count 【連想配列 キー/項目削除】oPriceOfFruit.Remove("リンゴ") 指定されたキーが存在しない場合はエラー 【連想配列 キー/項目全削除】oPriceOfFruit.RemoveAll 【連想配列 配列変換(項目)】asFruitPrice = oPriceOfFruit.Items Variant型配列、0オリジン 【連想配列 配列変換(キー)】asFruitName = oPriceOfFruit.Keys Variant型配列、0オリジン 【連想配列 設定変更】oPriceOfFruit.CompareMode = vbBinaryCompare 大/小文字区別 /vbTextCompare(大/小文字区別しない 【コレクション 定義】Dim cTrgtPaths ~ Set cTrgtPaths = CreateObject("System.Collections.ArrayList") 【コレクション 追加】cTrgtPaths.Add "c \test\a.txt" 【コレクション 値取り出し(単一)】cTrgtPaths.Item(0) c \test\a.txt(0オリジン) 【コレクション 値取り出し(ループ)】Dim sTrgtPath ~ For Each sTrgtPath In cTrgtPaths ~ MsgBox sTrgtPath ~ Next 【コレクション 要素数取得】cTrgtPaths.Count 要素数(末尾の要素番号ではない) 【コレクション 削除】cTrgtPaths.Remove "c \test\b.xlsx" 要素の値を指定する。要素番号では削除できない。 【コレクション 挿入】cTrgtPaths.Insert 2, "c \test\e.ppt" 要素番号2へ挿入される(元要素番号2以降が一要素ずれる) 【コレクション ソート】cTrgtPaths.Sort 【コレクション 配列変換】Dim avTrgtPaths ~ avTrgtPaths = cTrgtPaths.ToArray() Variant型配列に変換 【コレクション 全要素削除】cTrgtPaths.Clear 【エラー設定】On Error Resume Next 【エラー解除】On Error Goto 0 【エラー番号】Err.Number 【エラー内容】Err.Description 【WScriptShellObject 取得】Dim objWshShell ~ Set objWshShell = WScript.CreateObject("WScript.Shell") 【バッチ実行①】objWshShell.Exec("C \test.bat") Execは標準入出力できるが、WSH 5.6以降からしかサポートされていないので注意 【バッチ実行②】objWshShell.Run "C \test.bat", 0, True 第二引数:ウィンドウの表示スタイル(ウィンドウを非表示、別のウィンドウをアクティブ)、第三引数:プログラムの実行が終了するまでスクリプトを待機させるかどうか(詳細はこちら) 【コマンド実行】objWshShell.Run "cmd /c echo. ""C \test.txt""", 0, True 【レジストリ読込】objWshShell.RegRead("HKCU\WshTest\Test1") 【レジストリ書込】objWshShell.RegWrite("HKCU\WshTest\Test1", "test", "REG_SZ") キー/値,設定値,データ型 【環境変数 値取得】objWshShell.ExpandEnvironmentStrings( "%MYPATH_CODES%" ) 【特殊フォルダのパス取得】objWshShell.SpecialFolders("Desktop") デスクトップフォルダ 取得できるフォルダは「AllUsersDesktop」 「AllUsersStartMenu」 「AllUsersPrograms」 「AllUsersStartup」 「Desktop」 「Favorites」 「Fonts」 「MyDocuments」 「NetHood」 「PrintHood」 「Programs」 「Recent」 「SendTo」 「StartMenu」 「Startup」 「Templates」 【ショートカット 作成】With objWshShell.CreateShortcut( "c \test\src.txt.lnk" ) ~ .TargetPath = "c \test\dst.txt" ~ .Save ~ End With 【ショートカット 指示先パス取得】objWshShell.CreateShortcut( "c \test\src.txt.lnk" ).TargetPath 参照だけでなく変更も可 【ショートカット 指示先パス更新】With objWshShell.CreateShortcut( "c \test\src.txt.lnk" ) ~ .TargetPath = "c \test\dst2.txt" ~ .Save ~ End With 【ショートカット コメント更新】With objWshShell.CreateShortcut( "c \test\src.txt.lnk" ) ~ .Description = "テストコメント" ~ .Save ~ End With 【ショートカット 引数更新】With objWshShell.CreateShortcut( "c \test\src.txt.lnk" ) ~ .Arguments = " /b" ~ .Save ~ End With 【FileSystemObject 取得】Dim objFSO ~ Set objFSO = CreateObject("Scripting.FileSystemObject") 【ファイル コピー①】objFSO.CopyFile "C \codes\a.txt", "C \codes\test\" src dst [ overwrite ] 、 dst の末尾に "\" をつけること! 【ファイル コピー②】objFSO.CopyFile "C \codes\a.txt", "C \codes\test\a.txt" src dst [ overwrite ] 【ファイル 削除】objFSO.DeleteFile "c \test", True 【ファイル 移動/リネーム】objFSO.MoveFile "C \codes\src.txt", "C \codes\dst.txt" 【ファイル 存在確認】objFSO.FileExists("c \codes\a.txt") True 【ファイル 情報取得】objFSO.GetFile( "C \codes\a.txt" ).Attributes 32 (※)値の意味は 【ファイル・フォルダ情報取得】 参照 【ファイル 隠しファイル化】objFSO.GetFile( "C \codes\a.txt" ).Attributes = 2 【ファイル 絶対パス取得】objFSO.GetAbsolutePathName( "C \codes\a.txt" ) C \codes\a.txt 【ファイル ドライブ名取得】objFSO.GetDriveName( "C \codes\a.txt" ) C 【ファイル ファイル名取得】objFSO.GetFileName( "C \codes\a.txt" ) a.txt 【ファイル ファイルベース名取得】objFSO.GetBaseName( "C \codes\a.txt" ) a 【ファイル 拡張子取得】objFSO.GetExtensionName( "C \codes\a.txt" ) txt 【ファイル 親フォルダパス取得】objFSO.GetParentFolderName( "C \codes\a.txt" ) C \codes 【フォルダ コピー】objFSO.CopyFolder "C \codes\src", "C \codes\dst", True 配下フォルダ/ファイルも丸ごとコピー 【フォルダ 削除】objFSO.DeleteFolder "C \codes\test", True 配下フォルダ/ファイルも丸ごと削除 【フォルダ 作成】objFSO.CreateFolder( "C \codes\test" ) 親フォルダがない場合、エラーになる 【フォルダ 移動/リネーム】objFSO.MoveFolder "C \codes\src", "C \codes\dst" 配下フォルダ/ファイルも丸ごと移動/リネーム 【フォルダ 情報取得】objFSO.GetFolder( "C \codes" ).Attributes 32 (※)値の意味は 【ファイル・フォルダ情報取得】 参照 【フォルダ 存在確認】objFSO.FolderExists( "C \codes" ) True 【親フォルダパス取得】objFSO.GetParentFolderName( "C \codes\src" ) C \codes 【TXTファイル オープン】Set objTxtFile = objFSO.OpenTextFile("c \codes\test\a.txt", 1, True) 第二引数:IOモード(1 読出し、2 新規書込み、8 追加書込み)、第三引数:新しいファイルを作成するかどうか 【TXTファイル クローズ】objTxtFile.Close 【TXTファイル 読込(逐次)】Do Until objTxtFile.AtEndOfStream ~ strLine = objTxtFile.ReadLine ~ Loop 【TXTファイル 読込(一括)】sTextAll = objTxtFile.ReadAll 【TXTファイル 書込】objTxtFile.WriteLine strLine 【置換】Replace(文字列変数, " ", "") 【文字列検索(前方)】InStr("abcabc", "bc") 先頭からの位置、1オリジン(いない場合は0が返る 【文字列検索(後方)】InStrRev("abcabc", "bc") 末尾からの位置、1オリジン(いない場合は0が返る 【文字列 長さ(文字数)】Len("リンゴ") 3 【文字列 長さ(バイト数)】LenB("リンゴ") 6 【文字列結合】"abcdef" "gh" 【文字列抽出 左】Left("abcd", 3) abc 【文字列抽出 中】Mid("abcdefgh", 3, 2) cd(1オリジン) 【文字列抽出 右】Right("abcd", 2) cd 【文字列⇒ASCII 変換】Asc(文字) 【文字列の数値判定】IsNumeric( sStr ) 1⇒True、"a"⇒False、""⇒False 【ASCII⇒文字列 変換】Chr(ASCIIコード) (ex. Chr(Asc("①") + 1) ⇒ ② ) 【文字列繰り返し】"a" String(4, "b") abbbb 【大文字化】UCase("aaa") 【小文字化】LCase("AAA") 【配列再定義】ReDim Preserve 配列名(5) 要素数は0オリジン。左の例では要素数6の配列が作成される 【配列最大要素数】UBound(配列名) 返却値は0オリジン。返却値が3の場合、0~3 の配列であることを示す 【要素数0(未初期化)/要素数1配列判定】Dim asArray() ~ ReDim asArray(-1) ~ If Ubound(asArray) = -1 Then ~(未定義配列)~ Else ~(定義済み配列)~ End If 【配列 結合】Join(配列, ",") 【配列 分割】objWords = Split( sFilePath , "\" ) 格納先の変数は、配列ではなくオブジェクトとして定義しなければならないことに注意! 【型取得(文字列)】TypeName("Test") String 【型取得(値)】VarType("Test") 8(値の詳細は こちら 参照) 【10⇒16進数変換】変数 = Hex(734) 【16⇒10進数変換】変数 = CLng(" H" "FA") 【符号つき16進数表現】 HFFF0 【符号なし16進数表現】 HFFF0 【数値⇒文字列 変換】CStr(234.5) "234.5" 【文字列⇒数値 変換①】CDbl("234.5") 234.5 【文字列⇒数値 変換②】CLng("234.5") 234 【改行】( vbNewLine | vbCr | vbLf | vbCrLf ) 【少数 正数 切り捨て①】Fix( 99.224 ) 99 【少数 正数 切り捨て②】Int( 99.224 ) 99 【少数 負数 切り捨て①】Fix( -99.224 ) -99 (※)負数の場合は切り上げ 【少数 負数 切り捨て②】Int( -99.224 ) -100 (※)負数の場合は切り下げ 【少数 正数 四捨五入(第一位)】Round( 99.555, 0 ) 100 【少数 正数 四捨五入(第二位)】Round( 99.555, 1 ) 99.6 【少数 正数 四捨五入(第三位)】Round( 99.555, 2 ) 99.56 【少数 負数 四捨五入(第一位)】Round( -99.555, 0 ) -100 【少数 負数 四捨五入(第二位)】Round( -99.555, 1 ) -99.6 【少数 負数 四捨五入(第三位)】Round( -99.555, 2 ) -99.56 【少数 正数 切り上げ(第一位)】Round( 99.224 + 0.5, 0 ) 100 【少数 正数 切り上げ(第二位)】Round( 99.224 + 0.05, 1 ) 99.3 【少数 負数 切り上げ(第一位)】Round( -99.224 - 0.5, 0 ) -100 【少数 負数 切り上げ(第二位)】Round( -99.224 - 0.05, 1 ) -99.3 【少数 正数 切り下げ(第一位)】Round( 99.224 - 0.5, 0 ) 99 (=切り捨て) 【少数 正数 切り下げ(第二位)】Round( 99.224 - 0.05, 1 ) 99.2 【少数 負数 切り下げ(第一位)】Round( -99.224 + 0.5, 0 ) -99 (=切り捨て) 【少数 負数 切り下げ(第二位)】Round( -99.224 + 0.05, 1 ) -99.2 【現在時刻取得】Now() YYYY/DD/MM HH MM SS 【現在年月日取得】Date() YYYY/MM/DD 【0 00から現在までの経過時間(秒数)】Timer() 49229.781(13 40 29 .781) 【日付比較】If DateDiff("s", sCmpBaseTime, sModDate ) 0 Then ~( sModDate が新しい)~ ElseIf DateDiff("s", sCmpBaseTime, sModDate ) 0 Then ~( sModDate が古い)~ Else ~( sModDate = sCmpBaseTime)~ End If 日付は "YYYY/MM/DD" の文字列として指定する 【Wait処理】WScript.sleep(3000) ms単位 【実行スクリプト ファイルパス】WScript.ScriptFullName 【実行スクリプト ファイル名(拡張子あり)】WScript.ScriptName 【実行スクリプト ファイルベース名①】Mid( WScript.ScriptName, 1, InStrRev( WScript.ScriptName, "." ) - 1 ) 【実行スクリプト ファイルベース名②】objFSO.GetBaseName( WScript.ScriptName ) 【実行スクリプト フォルダパス①】Replace( WScript.ScriptFullName, "\" WScript.ScriptName, "" ) 【実行スクリプト フォルダパス②】objFSO.GetParentFolderName( WScript.ScriptFullName ) 【実行スクリプト フォルダパス③】objWshShell.CurrentDirectory ↑実行スクリプトがインクルードによって実行された場合、カレントフォルダが変わってしまうため使用しない。 【コマンドライン引数 カウント】WScript.Arguments.Count 【コマンドライン引数 取得】WScript.Arguments(0) 0オリジン(例:test.vbs aaa bbb の時、WScript.Arguments(0) は aaa) 【名前定義 追加】ThisWorkbook.Names.Add Name ="テスト", RefersTo ="=indirect(""R1C1"",false)" R1C1で指定すること 【名前定義 削除】ThisWorkbook.Names("テスト").Delete 【キー操作送信】Application.SendKeys "+{DOWN}", True "+":Shift、"^":Ctrl、"%":ALT、"{DOWN}":下キー 【Excel コマンド実行】Application.CommandBars.ExecuteMso "CellsDelete" セル削除 アンドゥはできないので注意。 【条件付き書式 追加】.Range("A1 B2").FormatConditions.Add Type =xlExpression, Formula1 ="=$A1=""あ""" 【条件付き書式 書式設定①】.Range("A1 B2").FormatConditions(1).Interior.Color = RGB(255, 255, 0) 【条件付き書式 書式設定②】.Range("A1 B2").FormatConditions(1).Font.Color = RGB(0, 255, 0) ライブラリ 【ログ出力クラス】 【プログレスバークラス】 【ストップウォッチクラス】 【IEウィンドウ出力クラス】 【定義済み配列判定】 【ファイル・フォルダパス一覧出力】 【フォルダ作成(再帰的)】 【ファイル・フォルダ判定】 【ファイル・ディレクトリ 選択ダイアログ】 【ファイル・フォルダ情報取得】 【ドライブ情報取得】 【空フォルダ削除(再帰的)】 【"_XXX"付与パス取得】 【文字列:末尾区切り文字以降の文字列取得】 【文字列:末尾区切り文字以降の除去】 【文字列:フォルダパス取得】 【文字列:ファイル名取得】 【文字列:ファイル名(拡張子なし)取得】 【文字列:拡張子取得】 【文字列:文字列バイト長取得】 【管理者権限実行】 【コマンド実行(VBS版)】 【X-Finder ini ファイル操作】 【iTunes 操作ライブラリ】 【vbs から vba マクロ呼び出し】 【外部プログラムインクルード】 サンプルコード 【iTuneControl】 【エラー処理(VBS版)】 【正規表現(VBS版)】 【配列の Push, Pop 関数】★ 【ビット演算関数】★ 【配列、連想配列 内容出力】 その他 【演算子】 演算子 意味 + 加算 - 減算 * 積算 / 除算 \ 除算(まるめ) Mod 剰余 小さい 大きい = 小さいか等しい = 大きいか等しい == 等しい 異なる And 論理積 Or 論理和 Not 否定 Xor 排他的論理和 文字列連結 + 文字列連結 ここを編集
https://w.atwiki.jp/hokkaido_vbs/pages/13.html
とあるインターネットで生まれた草野球チームの名称です VIP BLACK SOXの頭文字をとったのがvbs まだ編集中ですので大きなことはかけませんが 気になって仕方がないという方はこちらをどうぞ http //yy57.60.kg/test/read.cgi/base0vip0ball/1195819273/
https://w.atwiki.jp/nicomovie/pages/97.html
FPSでつい出来心でチート行為をしたくなる・・・ といったことはよくあると思います しかし、アップローダーに晒されているチートのほとんどはウイルスです 一番よくあるのは 拡張子が.batのものです ファイルの容量が小さいものは確実にCドライブを消滅させるバッチファイルです それ以前に.batのチートなどそうそうありません よく素人が引っかかるのは 拡張子が.vbsのファイルです これはvbsで隠しファイルになっているbatを実行させてしまう罠だ これにより、複数のユーザーのCドライブが消滅しました ネットゲームでチート行為をする際は .vbs .batのファイルは極力避けましょう あなたのPCが破壊されてしまいます。 コメント 名前 コメント
https://w.atwiki.jp/draemonash/pages/87.html
ここを編集 ライブラリ https //github.com/draemonash2/codes/blob/master/vbs/lib/FileSystem.vbs ファイル一覧取得 lFileListType)0:両方、1 ファイル、2 フォルダ、それ以外:格納しない Function GetFileList( _ ByVal sTrgtDir, _ ByRef asFileList, _ ByVal lFileListType _ ) Dim objFileSys Dim objFolder Dim objSubFolder Dim objFile Dim bExecStore Dim lLastIdx Set objFileSys = WScript.CreateObject("Scripting.FileSystemObject") Set objFolder = objFileSys.GetFolder( sTrgtDir ) *** フォルダパス格納 *** Select Case lFileListType Case 0 bExecStore = True Case 1 bExecStore = False Case 2 bExecStore = True Case Else bExecStore = False End Select If bExecStore = True Then lLastIdx = UBound( asFileList ) + 1 ReDim Preserve asFileList( lLastIdx ) asFileList( lLastIdx ) = objFolder Else Do Nothing End If フォルダ内のサブフォルダを列挙 (サブフォルダがなければループ内は通らない) For Each objSubFolder In objFolder.SubFolders Call GetFileList( objSubFolder, asFileList, lFileListType) Next *** ファイルパス格納 *** For Each objFile In objFolder.Files Select Case lFileListType Case 0 bExecStore = True Case 1 bExecStore = True Case 2 bExecStore = False Case Else bExecStore = False End Select If bExecStore = True Then 本スクリプトファイルは格納対象外 If objFile.Name = WScript.ScriptName Then Do Nothing Else lLastIdx = UBound( asFileList ) + 1 ReDim Preserve asFileList( lLastIdx ) asFileList( lLastIdx ) = objFile End If Else Do Nothing End If Next Set objFolder = Nothing Set objFileSys = Nothing End Function ここを編集
https://w.atwiki.jp/seigo777/pages/229.html
test.vbs Option Explicit On Error Resume Next Dim objFSO FileSystemObject Dim objFile ファイル書き込み用 Set objFSO = WScript.CreateObject( Scripting.FileSystemObject ) If Err.Number = 0 Then Set objFile = objFSO.OpenTextFile( test.txt , 2, True) If Err.Number = 0 Then objFile.Write( 梶田のテスト ) objFile.Close Else WScript.Echo ファイルオープンエラー Err.Description End If Else WScript.Echo エラー Err.Description End If Set objFile = Nothing Set objFSO = Nothing test2.vbs Option Explicit 定数の宣言 Const ForReading = 1 読み込み Const ForWriting = 2 書きこみ(上書きモード) Const ForAppending = 8 書きこみ(追記モード) Dim objFileSys Dim objOutFile Dim objNetWork Dim strAccountInfo ①ユーザIDの取得 Set objNetWork = WScript.CreateObject( WScript.Network ) strAccountInfo = objNetWork.UserName ②ファイルシステムオブジェクトの作成 Set objFileSys = WScript.CreateObject( Scripting.FileSystemObject ) ③テキストファイルを書き込み(ただし追記モード)でオープン Set objOutFile = objFileSys.OpenTextFile( X \999_個人ファイル\xxx_梶田資料\test.txt ,ForAppending) ④テキストファイルへの書き込み(1行書き込み) objOutFile.WriteLine Date[ date ] Time[ time _ ] User[ strAccountInfo ] - Login ⑤テキストファイルのクローズ objOutFile.Close ⑦オブジェクト破棄 Set objFileSys = Nothing Set objOutFile = Nothing Set objNetWork = Nothing
https://w.atwiki.jp/ohden/pages/487.html
VBS(Visual Basic Script) VBScript内で例外が発生すると、VBSからの戻り値は『0』となる。任意の値を返せない?try-catchみたいなものがある? 変数の型を調べる 変数の型を調べるには『VarType(param)』を使う。 対象の変数を指定して上記メソッドを実行すると数値が返ってくる。数値の意味は以下の通り。 定数 値 内容 vbEmpty 0 Empty値 (未初期化) vbNull 1 Null値 (無効な値) vbInteger 2 整数型 (Integer) vbLong 3 長整数型 (Long) vbSingle 4 単精度浮動小数点数型 (Single) vbDouble 5 倍精度浮動小数点数型 (Double) vbCurrency 6 通貨型 (Currency) vbDate 7 日付型 (Date) vbString 8 文字列型 (String) vbObject 9 オブジェクト vbError 10 エラー値 vbBoolean 11 ブール型 (Boolean) vbVariant 12 バリアント型 (Variant) (バリアント型配列にのみ使用) vbDataObject 13 非OLE オートメーション オブジェクト vbDecimal 14 10 進数型 vbByte 17 バイト型 (Byte) vbUserDefinedType 36 ユーザー定義型を含むバリアント型 vbArray 8192 配列 ただし、配列の場合は、配列であることと、配列に格納されているObjectの型が一緒に返ってくるので注意。 e.g.) バリアント型の配列:8192(配列)+12(バリアント型)=8204(バリアント型の配列) 更新日: 2013年11月06日 (水) 14時52分30秒 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/n2ranking/pages/16.html
集計.vbs は、ニコニコランキングメーカーで作成された動画のデータを元に、シリーズごとの再生数合計などを集計するとともに、ランキング作成に必要な動画のナンバーなどの情報を提供します。 配置場所 データフォルダ(左の画像では090315)の一つ上の階層のフォルダに置いてください。 使い方 データフォルダを、集計.vbs にドラッグ ドロップします。 その後しばらく待つと、集計が完了したことを示すメッセージが表示され、データフォルダ内に幾つかのファイルが作成されます。 必要なファイル データフォルダには、以下のファイルが置かれている必要があります。ファイル名は、setting.txtで指定できます。 rank.txt ニコニコランキングメーカーで出力されたファイルです。 titles.csv シリーズの名称や登録武将、シリーズと判定するキーワードなどを記載したファイルです。 movie_select.csv ランキングで紹介する動画名(sm9 など)と紹介タイミング(秒指定:1分30秒からなら、90と記載)、あるいは集計から除外したい動画を指定するファイルです。 作成・更新するファイル 以下のファイルが作成されます。 ranking.csv シリーズ単位集計結果の一覧です。TAB区切りCSVファイルです。 on_list.csv シリーズ分類でいずれかのシリーズに分類された動画の一覧です。TAB区切りCSVファイルです。 not_on_list.csv シリーズ分類でいずれのシリーズにも分類されなかった動画の一覧です。TAB区切りCSVファイルです。 movie_DL_list.txt 紹介するのに必要な動画ファイルの一覧です。このデータをニコニコランキングメーカーにコピー&ペーストして、動画をダウンロードしてください。 thumb_DL_list.txt 紹介するのに必要なサムネイル画像ファイルの一覧です。このデータをニコニコランキングメーカーにコピー&ペーストして、画像をダウンロードしてください。 list/nn aaaaaa.txt 動画のシリーズごとに分類されたデータが記載されます。シリーズナンバーとシリーズ名がファイル名になります。 例)430 ニコニコ歴史戦略ゲー シリーズランキング.txt ダウンロード syuukei.zip
https://w.atwiki.jp/n2ranking/pages/19.html
コメント収集.vbs は、集計.vbsで作成されたデータを元に、ランキング背景画像を作成するのに必要なコメントをダウンロードするのを補助します。コメントのダウンロードそのものは、GetNicoNicommentの機能を利用します。 配置場所 データフォルダ(左の画像では090315)の一つ上の階層のフォルダに置いてください。 GetNicoNicommentのファイル一式を、コメント収集.vbsと同じフォルダに置いて下さい。 使い方 データフォルダを、コメント収集.vbs にドラッグ ドロップします。 するとダウンロードが必要なコメント数を表示するダイアログが開きますので、ダウンロードするのであれば「はい」を押してください。 すると、GetNicoNicommentにダウンロードするコメントのリストが渡され、「コメント取得」ボタンを押すとコメントのダウンロードが出来ます。 必要なファイル ・setting.txt 設定ファイル。集計.vbsなどと共用です。 ・データフォルダ/list にある、各シリーズのデータ どのコメントの動画のコメントが必要なのか、判別するのに使います。 作成・更新するファイル ・comment_source/sm******.xml ニコニコ動画からダウンロードしたコメントデータ ダウンロード comment.zip
https://w.atwiki.jp/kodan/pages/110.html
ファイルロック Lock ファイルを作成、削除することによって、ロックを管理する ①ファイルを操作する前に、createNewFile()でロックファイルを作成する。 この時 ・新規に作成できた=true ・すでにファイルが存在している場合=false か返ってくる。 ②ファイル操作を行う ③ファイル操作が終了したら、finally 内で delete()を行う。 問題点:ロックファイル作成後で、削除するまでの間に、プログラムが落ちた場合。 ロックファイルを削除する動作が働く前に落ちるとファイルロックが解除されないままになる。 File lockFile = new File("pid.lock"); lockFile.deleteOnExit(); while (lockFile.createNewFile()) { try { // ロックを取得している場合の処理 ... } finally { lockFile.delete(); } } else { throw new RuntimeException("ロックを取得できませんでした."); } FileLock オブジェクトを使用し、ロックを管理する ①ロック対象のファイルの FileChannel を取得し、.tryLock()でロックをかける。 この時 ・ロックをかけられる場合は、値 ・ロックをかけられない場合は、null が返ってくる。 ※ tryLock の JavaDoc オーバーラップしたロックが別のプログラムによって保持されていたためロックに失敗した場合、 null が返されます。その他の原因でロックに失敗した場合は、適切な例外がスローされます。 ② tryLock() 結果をもとに自分がロックを保有した場合、ファイル操作を行う。 ③ファイル操作が終了したら、finally内でFileLock.release()を行う。 try { File lockFile = new File("pid.lock"); lockFile.deleteOnExit(); fs = new FileInputStream(lockFile); FileChannel fc = fs.getChannel(); FileLock lock = fc.tryLock(); if (lock == null) { new RuntimeException("ロック中"); } try { // ロックを獲得している場合の処理 ... } finally { // ロックの開放 lock.release(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fs.close(); } catch (IOException e) { e.printStackTrace(); } } 追加情報 File.deleteOnExit() 仮想マシンが終了したときに該当ファイルが削除される。 FileChannel.tryLock() (戻りの型 = FileLock) このチャネルのファイル上で排他ロックを獲得しようとする。 FileLock.release() このロックを解除します。 参考ページ、各JavaDoc