我正在尝试在我们的环境中更改几个HBA上的QueueDepth设置。我对脚本很恐怖,但我试图绊倒它,这样我们就不需要手动实现这个改变了。
简短的版本是这样的,我得到了一些其他脚本(目前正在工作),它收集了大量关于HBA的端口信息并将其放入文本文件中。另一个脚本搜索文件以剖析WWN / WWID信息并将其放入另一个文本文件中。
需要将文本文件中的WWN插入CLI命令。进一步说明:
我需要从中提取信息的示例文本文件:
10:44:24:44:a1:b1:c1:d1
10:41:42:44:a1:b2:c1:d2
10:24:14:22:a1:b1:c1:d1
需要信息(**<WWN>**)
:
hbacmd SetDriverParam **<WWN>** G P QueueDepth 32
答案 0 :(得分:0)
如果WWN行不包含其他文本,您可以像这样提取它们:
Set fso = CreateObject("Scripting.FileSystemObject")
Set sh = CreateObject("WScript.Shell")
Set re = New RegExp
re.Pattern = "^[0-9a-e]{2}(:[0-9a-e]{2}){7}$"
re.IgnoreCase = True
Set f = fso.OpenTextFile("C:\your\input.txt")
Do Until f.AtEndOfStream
line = f.ReadLine
If re.Test(line) Then
sh.Run "hbacmd SetDriverParam " & line & " G P QueueDepth 32", 0, True
End If
Loop
f.Close
答案 1 :(得分:0)
也许这对你来说已经足够了?
@echo off
for /F "delims=" %%a in (inputFile.txt) do (
ECHO hbacmd SetDriverParam %%a G P QueueDepth 32
)
如果没有,请发布其他详细信息,以便我解决问题。
以上程序只需显示最终的hbacmd
命令。如果它们是正确的,请删除ECHO
部分,以便真正执行命令。