【问题标题】:VBScript that Opens an ini file and a Config file in notepad在记事本中打开ini文件和配置文件的VBScript
【发布时间】:2013-04-02 11:26:01
【问题描述】:

我在医院环境中工作,现在我正在做 PC 部署。部分部署要求我们查看网络驱动器上的 2 个文件,以查找有关旧系统的信息。他们使用特定的端口和/或 TTY 来查看每个部门的信息。

我正在尝试创建一个可以在 2 个不同的记事本窗口中打开 2 个文件的 VBS 文件。第一个打开但 pcview.cfg 不断给我一个错误。我试图链接到 HBOWEM32 指向的同一位置。谁能解决?出于安全原因,我已取出网络驱动器的确切位置。下面的代码提示输入一个特定的文件夹名称,它是旧的电脑名称。输入该数据后,它会很好地打开 HBOWEM32 文件,但说找不到另一部分。我已经手动查看了文件夹内部并且 pcview.cfg 文件确实存在。我只是想要一种更快的方式来打开它们,而不是通过运行提示进行暴力破解。

这里是代码。

CONST strDir = "<Netowrk Location)"
Dim WshShell

set objShell = CreateObject("WScript.Shell")
set objFSO = CreateObject("Scripting.FileSystemObject")

function findFolder(strDir, strFlag)
    set objFolder = objFSO.GetFolder(strDir)
    for each objSubFolder in objFolder.SubFolders
        if (inStr(objSubFolder.Name, strFlag)) then
            findFolder = objSubFolder.Path
            exit function
        else        
            findFolder = findFolder (objSubFolder.Path, strFlag)
        end if
   next
end function

strFlag = inputBox("Enter Computer Name:")
strWeb = findFolder(strDir, strFlag) & "\HBOWEM32.ini"
objShell.Run strWeb

Set WshShell = CreateObject ("WScript.Shell")
WshShell.Run ("notepad.exe """ + "\\<same location as above>\Pcview.cfg""")

【问题讨论】:

    标签: windows networking vbscript config ini


    【解决方案1】:
    1. 显式使用选项
    2. 不要创建不使用的变量(WshShell、objShell)
    3. 改进变量名称(strFlag 似乎是计算机名称,strWeb 似乎是文件的完整规范)
    4. 不要将不同的信息集中到一个变量中(strWeb 包含要重复使用的文件夹路径和特定文件名)
    5. 使用诊断输出(至少在开发时)

    在代码中:

    Option Explicit
    ...    
    Dim strComputer : strComputer = InputBox("Enter Computer Name:")
    Dim strFolder   : strFolder   = findFolder(strDir, strComputer) 
    Dim strIniFSpec : strIniFSpec = objFSO.BuildPath(strFolder, "HBOWEM32.ini")
    WScript.Echo "will run '" & strIniFSpec & "'"
    objShell.Run strIniFSpec
    
    Dim WshShell    : Set WshShell = CreateObject("WScript.Shell")
    Dim strCfgFSpec : strCfgFSpec  = objFSO.BuildPath(strFolder, "Pcview.cfg")
    Dim strCmd      : strCmd       = "notepad.exe """ & strCfgFSpec & """"
    WScript.Echo "will run '" & strCmd & "'"
    WshShell.Run strCmd
    

    (未测试,请小心)

    【讨论】:

    • 在我尝试运行 Line:3 Char:1 时给出错误代码:预期语句代码:800A0400 来源:Microsoft VBScript 编译错误
    猜你喜欢
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多