-1

親切に助けてくれる人がいるだろうか

特定の名前で始まるフォルダー内のすべてのファイルを一覧表示し、その後ファイル名をテキスト ファイルに出力し、出力されたファイル名に基づいてレジストリ キーの値を作成するスクリプトを作成することはできますか?

vbscriptに関しては、これまでのところ(セクションで)以下を持っていますが、できません:

  • 特定の名前で始まるファイル名または xyz を含むファイル名を出力する方法を理解する
  • ファイル名をレジストリ値として渡す方法 (以下の WshShell.RegWrite セクション)
  • 1 つのスクリプトで 2 つのセクションを結合する方法
Dim fso
Dim ObjFolder
Dim ObjOutFile
Dim ObjFiles
Dim ObjFile
Set fso = CreateObject("Scripting.FileSystemObject")

Set ObjFolder = fso.GetFolder("C:\JetInfo")

Set ObjOutFile = fso.CreateTextFile("C:\WindowsFiles.txt")

Set ObjFiles = ObjFolder.Files

For Each ObjFile In ObjFiles
    ObjOutFile.WriteLine(ObjFile.Name & String(50 - Len(ObjFile.Name), " "))
Next

ObjOutFile.Close

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\NewSignature", "INPUT FILE NAME HERE", "REG_EXPAND_SZ"
4

1 に答える 1

1
  • 特定の文字列で始まる出力ファイル名:

    str = "foobar"
    
    For Each f In fso.GetFolder("C:\JetInfo").Files
      If LCase(Left(f.Name, Len(str))) = LCase(str) Then
        WScript.Echo f.Name
      End If
    Next
    

    特定の文字列を含む出力ファイル名:

    str = "foobar"
    
    For Each f In fso.GetFolder("C:\JetInfo").Files
      If InStr(LCase(f.Name), str) > 0 Then
        WScript.Echo f.Name
      End If
    Next
    
  • ファイル名をレジストリに書き込みます。

    Set f = fso.GetFile("C:\path\to\some.file")
    
    WshShell.RegWrite "HKCU\Software\Microsoft\Office\14.0\Common\NewSignature" _
      , Chr(34) & Replace(f.Path, "\", "\\") & Chr(34), "REG_EXPAND_SZ"
    

3 番目の質問については、ファイルからどのような値を作成したいですか? 同じ値を何度も上書きしても意味がありません。

于 2013-07-18T23:50:29.313 に答える