Text 将文本文件的每一行读入VB
我正在寻找一些自动化的工作,我目前必须执行。 我目前收到许多必须在unix中从配置文件查询的机器名,但我必须修改每天收到的列表以生成命令。我正在寻找一种自动化的方法,这样我就可以将名称存储在一个文本文件中,并在vb中运行一个脚本,该脚本将自动生成在unix中运行所需的命令 e、 g文本文件(machines.text)可能包含以下内容: ABCDE1234 ADEFR1234 BCDFREWE1 每一行都是机器名,但我要求将其改为小写,并获得以下命令输出:Text 将文本文件的每一行读入VB,text,excel,output,worksheet-function,vba,Text,Excel,Output,Worksheet Function,Vba,我正在寻找一些自动化的工作,我目前必须执行。 我目前收到许多必须在unix中从配置文件查询的机器名,但我必须修改每天收到的列表以生成命令。我正在寻找一种自动化的方法,这样我就可以将名称存储在一个文本文件中,并在vb中运行一个脚本,该脚本将自动生成在unix中运行所需的命令 e、 g文本文件(machines.text)可能包含以下内容: ABCDE1234 ADEFR1234 BCDFREWE1 每一行都是机器名,但我要求将其改为小写,并获得以下命令输出: grep -i abcdef1234
grep -i abcdef1234 */*.cfg
grep -i adefr1234 */*.cfg
grep -i bcdfrewe1 */*.cfg
我有时一天收到数百份,因此希望缩短流程,因为我可以只使用收到的原始文件,而不必手动查看
任何建议都将不胜感激,即使任何人都可以选择VB和excel
感谢您可以在Excel中打开列表,以便所有要处理的数据都进入A列,然后使用以下公式在B、C、D列中创建UNIX命令: 第一个命令:
="grep -i " &LOWER(LEFT(A:A,FIND(" ",A:A))) & " */*.cfg"
="grep -i "&LOWER(LEFT(TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))),FIND(" ",TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))))))&" */*.cfg"
="grep -i "&LOWER(MID(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)),FIND(" ",RIGHT(A:A,LEN(A:A)-FIND(" ",A:A))),LEN(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)))))&" */*.cfg"
第二个命令:
="grep -i " &LOWER(LEFT(A:A,FIND(" ",A:A))) & " */*.cfg"
="grep -i "&LOWER(LEFT(TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))),FIND(" ",TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))))))&" */*.cfg"
="grep -i "&LOWER(MID(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)),FIND(" ",RIGHT(A:A,LEN(A:A)-FIND(" ",A:A))),LEN(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)))))&" */*.cfg"
第三个命令:
="grep -i " &LOWER(LEFT(A:A,FIND(" ",A:A))) & " */*.cfg"
="grep -i "&LOWER(LEFT(TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))),FIND(" ",TRIM(MID(A:A,FIND(" ",A:A),LEN(A:A))))))&" */*.cfg"
="grep -i "&LOWER(MID(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)),FIND(" ",RIGHT(A:A,LEN(A:A)-FIND(" ",A:A))),LEN(RIGHT(A:A,LEN(A:A)-FIND(" ",A:A)))))&" */*.cfg"
一旦你把所有的texdt都放在A列中,把B、C、D列中的公式复制下来
然后您可以运行以下代码(可能需要调整)来创建输出:
Sub getCommands()
Dim oFso As New Scripting.FileSystemObject
Dim oWriteFile As TextStream
Dim oRange As Range
Set oWriteFile = oFso.CreateTextFile("C:\Commands.txt", True)
Set oRange = Range("B2")
Do Until oRange.Text = ""
With oWriteFile
.WriteLine oRange.Text
.WriteLine oRange.Offset(0, 1).Text ' second command
.WriteLine oRange.Offset(0, 2).Text ' third command
End With
Set oRange = oRange.Offset(1, 0)
Loop
oWriteFile.Close
End Sub
@user2527648:太好了,如果是这样的话,请在左边的向上/向下投票箭头下方用复选标记标记我的答案