而不是创建一个调用一个长命令VBS文件,将有可能做到这一点使用更多的VBScript,允许进一步的发展,在你以后的日子如此希望。
下面的脚本假设你的“CIEB_Group3”保持在同一个地方(一个cd .. up,然后一个cd再次下降),并且该文本文件保持为“server.txt”并且只包含一个条目。
Set WshShell = CreateObject("WScript.Shell")
'strpath = script execution directory
strPath = WshShell.CurrentDirectory
strPathReverse = StrReverse(strpath)
'create the parent folder filepath, equivalent to cd..
strParentFilePath = Left(strPath, Len(StrPath) - InStr(strPathReverse,"\"))
'open the text file, making the assumption it is in CIEB_Group3 and is called server.txt
Set objfso = CreateObject("Scripting.FileSystemObject")
Set textfile = objfso.OpenTextFile (strParentFilePath & "\CIEB_Group3\Server.txt", 1)
'read the text file first line into a variable
strNetworkShare = textfile.ReadLine
'map the drive, chr(32) = <space>, chr(34) = "
WshShell.Run "net use K:" & Chr(32) & Chr(34) & strNetworkShare & Chr(34) & Chr(32) & "/pers:yes", 1, 1
另外,如果你仍然想使用单CMD线 - 你不妨尝试扩大环境变量CMD命令外,按以下。
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "cmd /k cd.. & cd CIEB_Group3 & set /p RootServer=<Server.txt & net use K: " & wshShell.ExpandEnvironmentStrings("%RootServer%") & " /pers:yes", 1, True
'RootServer'变量的值是什么? – lit
这是一个到\\ XPVGHA001 \ landat1文件夹的网络共享路径。当我在提示本身中逐行执行它们时,这些命令正常工作。当它全部作为一行执行时,变量无法实例化。 – Arch1medes
您如何知道在新的'WScript.Shell'中定义了'RootServer'变量? – lit