0

我需要在此位置 C:\ProgramData\Microsoft\Windows\Start Menu\Programs 的 Windows 7 上的 StartMenu 组中创建一些快捷方式。

我首先在桌面上创建快捷方式,然后将它们复制到位置 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\。快捷方式从这里正常工作,但奇怪的是我看到一个文件夹结构是从我运行我的程序的地方创建的,在我执行我的脚本之后,文件夹结构看起来像这样

%SystemDrive%\ProgramData\Microsoft\Windows\Caches

我正在使用我的 java 程序执行 vbscript

Process p = Runtime.getRuntime().exec(cmd, env); 
result = p.waitFor();

这里的 cmd 是wscript.exe (path of temp file which is the vbscript) env 是我传递给 vb 脚本的参数

我的 vbscript 如下

set WshShell = WScript.CreateObject("WScript.Shell")
Set WshEnv = WshShell.Environment("Process")
startMenu = WshShell.SpecialFolders("AllUsersStartMenu")
shortcutPath=WshShell.ExpandEnvironmentStrings("%shortcut_path%")
type=WshShell.ExpandEnvironmentStrings("%type%")
mydir = "\Programs\" & type & "\"
program_dir = startMenu & mydir



Set fso = CreateObject("Scripting.FileSystemObject")
If (fso.FolderExists(program_dir) = 0) Then
    execCommand = "C:\Windows\system32\cmd.exe /C md """ & program_dir & ""
    Set execStatus = WshShell.Exec(execCommand)
    ' command md take a time, this can be fail for .Save
    If execStatus.Status = 0 Then
        WScript.Sleep 1000
    End If
End If


Set fs1 = CreateObject("Scripting.FileSystemObject")
If (fs1.FolderExists(program_dir)) Then
    fs1.CopyFile shortcutPath,program_dir
End If
Set fs1 = Nothing

我不太清楚为什么会发生这种情况,而且并不总是发生。任何防止这种情况的帮助将不胜感激,我知道我可以删除该文件夹,但我真的不想这样做,除非这是最后的手段。

谢谢

4

0 回答 0