嘿,脚本天才们,请注意我还在学习 VBScript,我已经做好了充分的准备。所以,只要我有方向,我会研究你要求我做的任何事情。
我搜索了建议的问题,发现一个可能是我需要的,但它已“关闭”,没有链接去寻找另一个喜欢的问题。
这是我想要完成的。我需要获取一个文本文件并将数据加载到一个数组中(如果这是正确的)。此数据包含 PC 名称、PC 位置。它将携带大约 2000 条记录(或行),我需要将每条记录加载到一个变量中。PC 名称将没有空格,但 PC 位置可以。像例子:
Laptop, my bathroom
Desktop, kitchen
我想将此信息加载到我可以使用WshShell.SendKeys
并传递关键命令的变量中。我已经能够使它“有点”处理两个文本文件并将该数据发送到 Excel 工作表(因为它可以使用制表符并输入)。但不是一对一匹配,而是一对一匹配。因此,如果 PC.txt 有 10 个 pc 名称,而 Location.txt 上有 10 个位置(按行顺序匹配每个文件),我的脚本会给我 100 个结果,不是 10. 所以,我知道我做错了,需要一些指导。这是我失败的尝试,我已经准备好迎接笑声了。。
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile1 = objFSO.OpenTextFile("C:\pc.txt", ForReading1)
Set objFile = objFSO.OpenTextFile("C:\Location.txt", ForReading)
'test is my excel file title test, this will allow tabs and enters
WshShell.AppActivate "test"
Const ForReading1 = 1
Dim arrFileLines1()
i = 0
Do Until objFile1.AtEndOfStream
Redim Preserve arrFileLines1(i)
arrFileLines1(i) = objFile1.ReadLine
i = i + 1
Loop
objFile1.Close
Const ForReading = 1
Dim arrFileLines()
i = 0
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
For Each strLine1 in arrFileLines1
For Each strLine in arrFileLines
WshShell.SendKeys strLine1
WshShell.SendKeys "{TAB}"
WshShell.SendKeys strLine
WshShell.SendKeys "{ENTER}"
Next
Next
我一直在研究如何根据“,”拆分这些数据,但我需要将其转换为可以使用并重复击键的变量,例如:
笔记本电脑 {TAB} 我的厨房 {ENTER} 台式机 {TAB} 浴室 {ENTER} ......等到最后。