0

我正在尝试在我们的环境中更改几个 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
4

2 回答 2

0

也许这对你来说已经足够了?

@echo off
for /F "delims=" %%a in (inputFile.txt) do (
    ECHO hbacmd SetDriverParam %%a G P QueueDepth 32
)

如果没有,请发布更多详细信息,以便我解决问题。

上面的程序只是显示最终的hbacmd命令。如果它们正确,则删除该ECHO部分,以便真正执行命令。

于 2013-06-03T21:56:03.727 回答
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
于 2013-06-03T21:08:02.567 回答