• 締切済み

VBS を javascript に書き換える

以下は VBS のIEの履歴を表示するスクリプトです ---------------------------------------- Set sa = CreateObject("Shell.Application") set f = sa.NameSpace("C:\Users\USER\AppData\Local\Microsoft\Windows\History") For Each i In f.Items Set f2 = i.GetFolder For Each i2 In f2.Items Set f3 = i2.GetFolder For Each i3 In f3.Items ' MsgBox f3.GetDetailsOf(i3, 0), f3.GetDetailsOf(i3, 1), f3.GetDetailsOf(i3, 2) Next Next Next Set sa = Nothing ---------------------------------------- これをjavascript に書き換えたいのですがわかりません このスクリプトをどうしたら javascriptで表せるのか 教えてください

みんなの回答

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.1

Javascript には、パソコン内のファイルにアクセスする命令はありません。 しかし、ウェブページの閲覧履歴なら、histry オブジェクトで管理されています。 http://www.tohoho-web.com/js/history.htm いちいち、文字を取得したり・・・といったことをしなくても、たぶん1行で目的のことができると思います。 しかし、過去に見たページへのジャンプが中心で、URLの文字列を返す命令は current,previous,next の3つしかありません。

neko-007
質問者

お礼

ありませんか。。。 乙です

関連するQ&A

  • VBSのFor文

    VBSのドキュメントをダウンロードし、その中にFor文のサンプルがあったんですが、この構文の"f1"はどういった役割をしているのでしょうか?教えてください。 Dim fso, f, fc, f1,s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFolder("c:\work") Set fc = f.files For Each f1 in fc s = f1.name Next

  • VBSのGetFolderメソッドについてですが

    VBSで質問です。環境はXP Proです。 GetFolderメソッドでFolderオブジェクトを取得し、Filesプロパティを For Eachでチェックしている時に、フォルダ内ファイルが削除された場合は、例外処理が起こるのでしょうか? それとも、削除処理自体が排他制御されてしまうのでしょうか? ----------------------------- ' 環境設定 Const strRootPath = "D:\" '監視対象フォルダ Dim objFso,objFolder,objFile,count Set objFso = CreateObject("Scripting.FileSystemObject") Set objFolder = objFso.GetFolder(strRootPath) count = 0 ' メインスクリプトの実行開始 For Each objFile In objFolder.Files     ' このタイミングでファイルが削除されてしまったら? If objFso.GetExtensionName(objFile) = "txt" Then count = count + 1 End If Next 皆様のお知恵をお貸しください。

  • VBS : 正常に動作しないのはなぜ?

    複数ファイルのファイル名を変更するVBSを作りましたが、正常に動作しません。 複数のファイルが入ったフォルダをVBSファイルにドラッグアンドドロップすると、 ファイル名が正しく変更される場合と、予期しないファイル名になってしまう場合があります。 フォルダ内のファイル数が多いと、ファイル名が異様に長いものになってしまいます。 どこが悪いのかをご指摘いただければ幸いです。 よろしくお願いいたします。 'ドロップされたファイルの情報を取得 Set arg=WScript.Arguments '店IDの入力ウィンドウを表示 ShopID = InputBox("店IDを入力してください。","店IDの追加","") If ShopID = "" Then   WScript.Quit End If Set fs=CreateObject("Scripting.FileSystemObject") For Each item0 In arg   If fs.FileExists(item0) Then     e(item0)   ElseIf fs.FolderExists(item0) Then     r fs.GetFolder(item0)   End If Next WScript.Quit Sub r(f)   For Each f1 In f.Files     e f1   Next   For Each f1 In f.SubFolders     r f1   Next End Sub 'ファイル名の頭に店IDを付ける Sub e(FilePth)   NewName = ShopID & "_" & fs.GetFileName(FilePth)   Set src = fs.GetFile(FilePth)     src.Name = NewName End Sub

  • VBSで指定したフォルダー内のファイルを書き出さないようにする

    あるフォルダ以下のファイル名を出力ファイル、f.name.txtに書き出すのですが "新しいフォルダ"というフォルダのなかにあるファイルは書き出さないようにしたいのですが、意に反してフォルダー内の全てのファイル名を書き出してしまいます。どこがおかしいのでしょう? ********************************************** Set FSO = CreateObject("Scripting.FileSystemObject") Set fl = WScript.CreateObject("Scripting.FileSystemObject") Set abc = fl.CreateTextFile("f.name.txt") ShowSubfolders FSO.GetFolder(".") Sub ShowSubFolders(Folder) For Each File in Folder.Files 'Folder内のファイルを列挙する Fname = File.name FolderCheck=Folder & "\" & "新しいフォルダ" If Folder <> FolderCheck Then abc.Write Folder & "\" & Fname & vbCrLf End If Next For Each Subfolder in Folder.SubFolders 'Foler内のフォルダを列挙する ShowSubFolders Subfolder '再帰呼び出し Next End Sub abc.Close

  • VBスクリプト:ファイル名をファイルに書く

    VBスクリプトで以下のようなコードを書いているのですが、上手く動いてくれません。あるディレクトリのファイル名をテキストファイルに書き込むという処理を行いたいのですが。。 配列は、ある順番(ファイル名順)のみ書き込むという処理を付け加えたいため必須です。アドバイスを頂けないでしょうか?宜しくお願い致します。 Set objFS = CreateObject("Scripting.FileSystemObject") Set fl = objFS.GetFolder("D:\") i = 0 For Each objFile In fl.Files str(i) = objFile.Name i = i + 1 Next Set objText = objFS.OpenTextFile("D:\filename.txt") For i = 0 To UBound(fl) objText.WriteLine fl(i) Next objText.Close

  • 再度:VBSで指定したフォルダー内のファイルを書き出さないようにする

    先ほども似たような質問をしました。 あるフォルダの中にあるファイル名の一覧をファイル"f.name.txt"を書き出したいのですが"新しいフォルダ"のなかにあるファイルは書き出さないようにしたいです。下記のVBSは"新しいフォルダ"のなかに更にフォルダが階層的に存在するときには"新しいフォルダ"の中のファイルも全て書き出してしまいます。 "新しいフォルダ"の中にフォルダがない場合は正しく動きます。 "新しいフォルダ"の中にフォルダが階層的にあっても"新しいフォルダ" の中にあるファイル名を書き出さないようにするにはどうしたらよいのでしょう? ************************************************************** Set FSO = CreateObject("Scripting.FileSystemObject") Set fl = WScript.CreateObject("Scripting.FileSystemObject") Set abc = fl.CreateTextFile("f.name.txt") ShowSubfolders FSO.GetFolder(".") Sub ShowSubFolders(Folder) If Folder.Name <> "新しいフォルダ" Then For Each File in Folder.Files 'Folder内のファイルを列挙する Fname = File.name abc.Write Folder & "\" & Fname & vbCrLf Next End If For Each Subfolder in Folder.SubFolders 'Folder内のフォルダを列挙する ShowSubFolders Subfolder '再帰呼び出し Next End Sub abc.Close

  • VBSからjavascript

    下記ソースの指定の箇所からjavascriptのfunction fun1(1)をよびたいのですがどう記述したらいいでしょうか。 (ちなみにbody onload=は使わない条件です) <%@ LANGUAGE = VBSCRIPT %> <html> <head> <script type="text/javascript"> <!-- //禁止、許可 function fun1(is){ var is; var i; var jj; jj=document.form1.text2.length; for (i=0;i<jj;i++){ if (is==1) document.form1.text2[i].disabled=true; if (is==2) document.form1.text2[i].disabled=false; } } //--> </script> </head> <html> <body> <form name="form1"> <input type="text" name="text2" size="14" maxlength="8" value="ABC"> <input type="text" name="text2" size="14" maxlength="8" value="DEF"> <% <-------------------ここでfun1(1)をよびたい fun(1)と書いてもエラー >% </form> </body> </html>

  • OFFCEアプリをVBSで全て保存して閉じたい

    VBSで、開いた状態の複数・複シートのEXCELを全て保存して閉じるスクリプトは、http://okwave.jp/qa/q5932062.html記載の物が動いたのですが、 Set Excel0 = GetObject(, "Excel.Application") Excel0.DisplayAlerts = vbfalse For Each Book0 in Excel0.workbooks   If Book0.saved = vbfalse Then Book0.save   Book0.close Next Excel0.quit 同様に、複数開いた状態のWORDやPOWERPOINT、ACCSESSをVBSで上書き保存して閉じる場合の応用のスクリプトを教えて下さいませ。 (流石に、見本のスクリプトの「EXCEL」の文字列を、「WORD」や「POWERPOINT」に変更してみただけでは上手く動かない様です。) ↓1文章開いた状態だけなら保存して閉じてくれるが、2つ以上開くと保存して閉じてくれません。 <うまく動かなかったスクリプト> Set Word0 = GetObject(, "Word.Application") Word0.DisplayAlerts = vbfalse For Each Book0 in Word0.Documents If Book0.saved = vbfalse Then Book0.save Book0.close Next Word0.quit Set Powerpoint0 = GetObject(, "Powerpoint.Application") Powerpoint0.DisplayAlerts = vbfalse For Each Book0 in Powerpoint0.Presentations If Book0.saved = vbfalse Then Book0.save Book0.close Next Powerpoint0.quit

  • VBSを使って Excel の任意シートを開くには

    VBS初心者です。知識のある方、ご教授願えませんか。 VBScript で同一フォルダにある「複数の Excelファイルを順番に任意のシートを選択して 開く」というのを実行したいのですが、どのようにすればよいでしょうか 仕事で急に必要になったのですが、VBScript の知識がなく困っていおります。 色々と調べてシート名が「半角英数字」なら成功したのですが、「漢字」の場合は「インデックスが有効範囲にありません」とエラーメッセージがでます。 「漢字」のシートを選択した場合でも成功するようにしたいのですが、どなたかご教授願えませんでしょうか? (●成功例)「半角英数字」のシートを指定した場合 Option Explicit Dim bk, ex, f, gf, sh, so Set so = CreateObject("Scripting.FileSystemObject") Set gf = so.GetFolder(".") Set ex = CreateObject("Excel.Application") ex.Application.DisplayAlerts = False ex.Visible = true For Each f In gf.Files If LCase(so.GetExtensionName(f.Name)) = "xlsm" Then Set bk = ex.Workbooks.Open(gf & "\" & f.Name) ex.worksheets("shukei").select Set sh = bk.Worksheets(1) End If Next MsgBox("Finished!") (●失敗例)「漢字」のシートを指定した場合 Option Explicit Dim bk, ex, f, gf, sh, so Set so = CreateObject("Scripting.FileSystemObject") Set gf = so.GetFolder(".") Set ex = CreateObject("Excel.Application") ex.Application.DisplayAlerts = False ex.Visible = true For Each f In gf.Files If LCase(so.GetExtensionName(f.Name)) = "xlsm" Then Set bk = ex.Workbooks.Open(gf & "\" & f.Name) ex.worksheets("集計").select Set sh = bk.Worksheets(1) End If Next MsgBox("Finished!")

  • マクロのことで再度質問です。

    すいません、先ほど質問した者です。 http://okwave.jp/qa/q7357905.html 以下のマクロを試すと・・ Aのセルに「ファイル名.txt」 Bのセルに「C:\Users\~¥フォルダ名」 となります。 この「.txt」と「C:\Users\~¥」は表示させたくありません。 自分でもいじってみたのですが、できませんでした。 表示させないようにするにはどうすればいいでしょうか? 度々の質問で恐縮ですが、よろしくお願いします。 Sub Macro() Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim FolderPath As String FolderPath = ThisWorkbook.Path Dim myFile As Object Dim i As Long i = 2 Dim myFolder As Object For Each myFolder In fso.GetFolder(FolderPath).SubFolders For Each myFile In fso.GetFolder(myFolder).Files Cells(i, 4).Value = myFolder Cells(i, 1).Value = myFile.Name Cells(i, 7).Value = fso.OpenTextFile(myFile.Path).ReadAll() i = i + 1 Next Next End Sub Private Sub CommandButton1_Click() End Sub

専門家に質問してみよう