2017-06-29 46 views
1

所有,我試圖腳本啓動一個應用程序,其路徑在每個用戶之間是不同的。有什麼方法可以找到應用程序的真正路徑(每個用戶),然後用下面的腳本啓動程序?用VBS啓動應用程序whos路徑在用戶之間是不同的

此外,以登錄用戶的身份運行應用程序的最佳方式是什麼,例如%username%。我已經嘗試了下面的腳本(對於這個問題),但似乎沒有工作。

on error resume next 
theDir = "C:\Users\" & createobject("wscript.shell").expandenvironmentstrings("%username%") & "\AppData\Local\Apps\2.0\ZJVRE3RK.4TQ\VLGML47Q.TPN\2rin..tion_5bfb425a74ceb3d8_0003.0004_c52ddbfe44f7690b" 

theCmd = "2RingIPPSClient.exe" 

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

objSh.CurrentDirectory = theDir 

objSh.Run theCmd 
+0

路徑的一部分的應用程序,用戶之間的變化是:ZJVRE3RK.4TQ \ VLGML47Q.TPN \ 2rin..tion_5bfb425a74ceb3d8_0003.0004_c52ddbfe44f7690b「 – Bryan

+0

以上所以你的意思是固定部分是'%userprofile%\ Appdata \ Local \ 2.0 \和2RingIPPSClient.exe',其他部分是來自不同用戶的變量? – Hackoo

+0

正確,區別在於2.0和應用程序名稱之間。對於每個用戶都是不同的 – Bryan

回答

0

你可以試用一下這個VBScript中:

Option Explicit 
Dim Ws,fso,Location,FileName,Command,Result,ReadFile,Contents 
Set Ws = CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 
Location=Ws.ExpandEnvironmentStrings("%userprofile%\AppData\Local\2.0") 
FileName="2RingIPPSClient.exe" 
Command = "Cmd /C Where /r "& Location &" "& FileName &" > %Tmp%\Found.txt" 
Result = Ws.Run(Command,0,True) 
Set ReadFile = fso.OpenTextFile (Ws.ExpandEnvironmentStrings("%Tmp%\Found.txt"), 1) 
Contents = ReadFile.ReadLine 
'wscript.echo Contents 
Ws.run Contents 
+0

工作正常!是否有避免用戶參與,因此他們不必擊中「確定」的通知,使應用程序可以運行? – Bryan

+0

只是擺脫wscript.echo – Hackoo

+0

作品完美,正是我一直在尋找!謝謝你的幫助! – Bryan

1

嘗試用遞歸函數像這樣搜索的文件:

Function FindFile(name, fldr) 
    For Each f In fldr.Files 
     If f.Name = name Then 
      res = f.Path 
      Exit For 
     End If 
    Next 

    If IsEmpty(res) Then 
     For Each sf In fldr.SubFolders 
      res = FindFile(name, sf) 
      If res <> "" Then Exit For 
     Next 
    End If 

    FindFile = res 
End Function 

Set sh = CreateObject("WScript.Shell") 
Set fso = CreateObject("Scripting.FileSystemObject") 

cmd = FindFile("2RingIPPSClient.exe", fso.GetFolder(sh.ExpandEnvironmentStrings("%USERPROFILE%\Appdata\Local\2.0"))) 

If cmd <> "" Then 
    'do stuff 
End If 
+0

謝謝Ansgar,對不起,因爲我是一個使用腳本的新手......在找到應用程序之後,我會在哪裏放置文件的執行?這將被放置在@「do stuff? – Bryan

+1

@Ansgar Wiechers您應該使用'End Function'而不是'End Sub';) – Hackoo

+0

如何在上述腳本找到文件位置後執行2RingIPPSClient.exe? – Bryan

相關問題