2013-05-01 47 views
0

我想寫一個腳本,將更新WinXP和Win7(32和64位)中的桌面快捷方式。我有兩個問題,在XP中,快捷方式的目標路徑不會更改,並且在XP和7中,快捷方式的「開始」部分都不會更改。這裏有什麼錯,我該如何糾正?vbs腳本來改變工作在7但在XP中的快捷方式

If InStr(GetWindowsVer(), "XP") > 0 then 
    IterateFolder("C:\Documents and Settings\") 
Elseif InStr(GetWindowsVer(), "7") > 0 then 
    IterateFolder("C:\Users\") 
End if 

Sub IterateFolder(folderPath) 
    Dim strFolderToSearch, objFSO, objRootFolder, objFolder, colSubfolders, strOutput, subFolder 
    strFolderToSearch = folderPath 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objRootFolder = objFSO.GetFolder(strFolderToSearch) 
    Set colSubfolders = objRootFolder.SubFolders 

    For Each objFolder in colSubfolders 

      subFolder = objFolder.Path & "\Desktop" 

      Set objFSO1 = CreateObject("Scripting.FileSystemObject") 
      Set objFolder1 = objFSO.GetFolder(subFolder) 

      Set colFiles = objFolder1.Files 
      For Each objFile in colFiles 
      If strcomp(right(objFile.name,4),".lnk",vbTexctCompare) = 0 then     

       Set Shell = CreateObject("WScript.Shell") 
       Set Link = Shell.CreateShortcut(objFile.Path) 

       if instr(Link.TargetPath, "Office") > 0 then 
        strOutput = objFile.Path 
        strOutput = strOutput & vbCr & vbLf & Link.TargetPath 
        strOutput = strOutput & vbCr & vbLf & Link.WorkingDirectory 
        MsgBox strOutput  'This line returns expected data' 

        Link.TargetPath = Replace(Link.TargetPath, "Office11", "Office14" 

        if GetBits = "64" Then 
         Link.TargetPath = Replace(Link.TargetPath, "Program Files\", "Program Files (x86)\") 
        End if 

        Link.WorkingDirectory = Replace(Link.WorkingDirectory, "Office11", "Office14") 
        Link.Save 

       End if 
      End if 
     Next 
    Next 
End Sub 

回答

0

代碼在做什麼,我告訴它做的,默認的比較VBS使用的方法替換功能是二進制的,這是區分大小寫的。由於某些原因,快捷方式中的路徑不區分大小寫。我添加的選項做了vbTextCompare加入> , 1, -1, 1到我的替代語句的末尾,以便他們現在這個樣子:

Link.TargetPath = Replace(Link.TargetPath, "Office14", "Office99", 1, -1, 1) 

所以它現在替換OFFICE14與Office99而不考慮的情況下。我在XP中的目標路徑和7中的WorkingDirectory現在都在改變!

相關問題