Board logo

标题: [问题求助] 普通域用户runas安装软件的VBS脚本怎样处理路径中的空格? [打印本页]

作者: 眼睛中间看人    时间: 2014-5-9 17:26     标题: 普通域用户runas安装软件的VBS脚本怎样处理路径中的空格?

各位老师,我想要写个脚本能够在普通域用户下使用runas来安装软件,但是安装文件的网络路径里面有空格,执行代码时会报错,请问该如何解决?另外再问个问题,能不能自定义安装路径,就是说我可以通过inputbox来输入想要安装软件的路径,这样我就不用针对每个程序写个脚本了。本人第一次发帖,请各位能够帮助小弟,非常感谢。
  1. Const AppPath = "runas /user:domain\user  \\wux-file01\IT Install Package\Install Files\Java\jre-6u31-windows-i586-s.exe"
  2. Const pwd = "abc@123"
  3. Set objShell = CreateObject("Wscript.Shell")
  4. objshell.Run AppPath
  5. WScript.Sleep 1000
  6. objshell.SendKeys(pwd)
  7. objshell.SendKeys("{ENTER}")
复制代码

作者: CrLf    时间: 2014-5-9 23:23

双引号转义
  1. Const AppPath = "runas /user:domain\user  ""\\wux-file01\IT Install Package\Install Files\Java\jre-6u31-windows-i586-s.exe"""
复制代码

作者: CrLf    时间: 2014-5-9 23:44

取 inputbox 的返回值就行了
  1. path = InputBox("请输入路径:")
  2. AppPath = "runas /user:domain\user  """ & path & """"
复制代码
也可以用文件选择框:
  1. Set objDialog = CreateObject("UserAccounts.CommonDialog")
  2. objDialog.Filter = "All Files|*.*"
  3. If objDialog.ShowOpen Then
  4.    AppPath = "runas /user:domain\user  """ & objDialog.FileName  & """"
  5. Else
  6.    Wscript.Quit
  7. End If
复制代码

作者: yu2n    时间: 2014-5-10 17:21

本帖最后由 yu2n 于 2014-5-10 17:23 编辑
取 inputbox 的返回值就行了也可以用文件选择框:
CrLf 发表于 2014-5-9 23:44


    选择文件夹位置:
  1. Dim strPath
  2. strPath=BrowseForFolder("请选择一个文件夹:")
  3. Msgbox strPath
复制代码
  1. ' +----------------------------------------------------------------------------+
  2. ' | 浏览文件夹 ' File:Dialog.vbs (WSH sample in VBScript)   |
  3. ' |              Author:(c) G. Born                         |
  4. ' +----------------------------------------------------------------------------+
  5. Function BrowseForFolder(ByVal sTips)
  6.     Const BIF_returnonlyfsdirs = &H0001
  7.     Const BIF_editbox= &H0010
  8.     Dim oShell, oFolder
  9.     BrowseForFolder = ""
  10.     Set oShell = CreateObject("Shell.Application")
  11.     Set oFolder = oShell.BrowseForFolder(&H0, sTips, BIF_editbox + BIF_returnonlyfsdirs)
  12.     If InStr(1, TypeName(oFolder), "Folder") > 0 Then
  13.         BrowseForFolder = oFolder.Items().Item().Path
  14.     End If
  15. End Function
复制代码

作者: 眼睛中间看人    时间: 2014-5-12 05:45

回复 2# CrLf


    加双引号试过了,不行。
作者: 眼睛中间看人    时间: 2014-5-12 05:50

回复 3# CrLf


这条语句执行报错,
const AppPath = "runas /user:domain\user  """ & path & """"

我的电脑室Windows 7 64位的,没有 UserAccounts.CommonDialog




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2