Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 批处理被动群集节点Win2012R2_Batch File_Cluster Computing_Findstr - Fatal编程技术网

Batch file 批处理被动群集节点Win2012R2

Batch file 批处理被动群集节点Win2012R2,batch-file,cluster-computing,findstr,Batch File,Cluster Computing,Findstr,我正在尝试构建一个批处理脚本,该脚本使用cluster实用程序定义变量1 首先,如果有一个完美的结果-如果列表中没有列出COMPUTERNAME,则设置变量1 问题是如果ERRORLEVEL=0。然后它应该找到以“WINSV”开头的字符串并排除%COMPUTERNAME% cluster node | findstr /r "WINSV*" | findstr /v "%COMPUTERNAME%" 返回以下内容: WINSV9999 1 Up “群集节点”命令返回:

我正在尝试构建一个批处理脚本,该脚本使用cluster实用程序定义变量1

首先,如果有一个完美的结果-如果列表中没有列出COMPUTERNAME,则设置变量1

问题是如果ERRORLEVEL=0。然后它应该找到以“WINSV”开头的字符串并排除%COMPUTERNAME%

cluster node | findstr /r "WINSV*" | findstr /v "%COMPUTERNAME%" 
返回以下内容:

WINSV9999         1 Up
“群集节点”命令返回:

    Node           Node ID Status
-------------- ------- ---------------------
WINSV9999         1 Up
WINSV9998         2 Up
现在唯一缺少的是如何只将前8个字符打印到VARIABLE1变量中。 有什么线索吗?谢谢你的帮助

    set CLUSTERGROUP=CLUSTERNAME
cluster group | find /I "%CLUSTERGROUP%" | find /I "%COMPUTERNAME%" 1>nul 2>&1
if %ERRORLEVEL% GTR 0 (
    set VARIABLE1=%COMPUTERNAME%
) 
else ( 
cluster node | findstr /r "WINSV*" | findstr /v "%COMPUTERNAME%" 
)
编辑: 现在使用这个:

set CLUSTERGROUP=CLUSTERNAME
call cluster group | find /I "%CLUSTERGROUP%" | find /I "%COMPUTERNAME%" 1>nul 2>&1
if %ERRORLEVEL% GTR 0 (
    set VARIABLE1=%COMPUTERNAME%
) else (
    for /F "tokens=1" %%I in ('call cluster node ^| findstr /r "WINSV*" ^| findstr /v "\<%COMPUTERNAME%\>"') do set "VARIABLE1=%%I"
)

您需要使用
FOR/F
命令将
cluster
命令的输出捕获到变量中。然后您可以操作该变量。关于这个:
for/F“tokens=1”%%I in('cluster node^ findstr/I/B“\”)是否设置了“VARIABLE1=%%I”
?请注意
findstr/R“WINSV*”
是错误的:1。要匹配以
WINSV
开头的字符串,请使用搜索字符串
“WINSV.*”
*
表示前面表达式的零个或多个实例
*
,该表达式是任意字符
;您已定义了零个或多个
V
)和2。
/R
在管道中无效,因为没有指定路径…脚本正在工作(请参见编辑)。但是我需要重新建模,因为错误级别。有什么线索吗?非常感谢。
c:>cluster group
Listing status for all available resource groups:

Group                Node            Status
-------------------- --------------- ------
Available Storage    WINSV9999    Offline
Cluster Group        WINSV9999    Online
CLUSTERNAME          WINSV9999    Online