我有一组命令,我已经为其创建了批处理文件。现在我必须运行大约100台服务器。
怎么做?
我不想使用powershell,因为命令没有使用它。
以下是我的idrac6.bat
内容:
racadm -r %1 -u %2 -p %3 config -g cfgipmilan -o cfgipmilanalertenable 1
racadm -r %1 -u %2 -p %3 config -g cfgIpmiLan -o cfgIpmiPetCommunityName WP!OME@Ro
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.System.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.System.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Storage.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Storage.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Updates.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Updates.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Config.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Config.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Worknotes.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Worknotes.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 set idrac.snmp.alert.1.enable 1
racadm -r %1 -u %2 -p %3 set idrac.snmp.alert.1.destaddr %4
racadm set idrac.snmp.trapformat V2
对于执行命令的单个服务器IP I用户。
idrac6.bat <Server IP> username password > idrac6732018.txt
现在我需要在<Server IP>
字段中传递整个服务器IP列表。
答案 0 :(得分:0)
如果您的服务器IP地址在批处理文件旁边的文本文件中每行一个,那么以下实现可能会有所帮助:
@Echo Off
For /F "Delims=" %%A In (%1) Do Call :Sub %%A %2 %3 %4
Exit /B
:Sub
racadm -r %1 -u %2 -p %3 config -g cfgipmilan -o cfgipmilanalertenable 1
racadm -r %1 -u %2 -p %3 config -g cfgIpmiLan -o cfgIpmiPetCommunityName WP!OME@Ro
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.System.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.System.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Storage.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Storage.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Updates.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Updates.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Config.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Config.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Worknotes.critical -a none -n snmp
racadm -r %1 -u %2 -p %3 eventfilters set -c idrac.alert.Worknotes.Warning -a none -n snmp
racadm -r %1 -u %2 -p %3 set idrac.snmp.alert.1.enable 1
racadm -r %1 -u %2 -p %3 set idrac.snmp.alert.1.destaddr %4
racadm set idrac.snmp.trapformat V2
您可以像这样运行它,正确更改文本文件的名称:
idrac6.bat IPList.txt username password UNKNOWN > idrac6732018.txt
我使用了UNKNOWN
,因为您的帖子中没有提到%4
参数,请根据需要插入。
修改强>
您也可以保持idrac6.bat
不变,并使用与此类似的命令提示行运行它,(显然来自正确的工作目录):
(For /F "Delims=" %A In (IPList.txt) Do @Call idrac6.bat %A username password UNKNOWN)>idrac6732018.txt