Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 在批处理脚本中捕获tabadmin status命令的输出_Batch File_Cmd_Tableau Api - Fatal编程技术网

Batch file 在批处理脚本中捕获tabadmin status命令的输出

Batch file 在批处理脚本中捕获tabadmin status命令的输出,batch-file,cmd,tableau-api,Batch File,Cmd,Tableau Api,我想在批处理脚本中捕获tabadmin status命令的输出,并打印与关闭的服务相关的不同消息。 例如:tabadmin状态的输出——详细: 'Tableau Server Data Engine' (5980) is running. 'Tableau Server Coordination Service 0' (7528) is running. 'Tableau Server Search and Browse 0' (10172) is running. 'Tableau Serve

我想在批处理脚本中捕获tabadmin status命令的输出,并打印与关闭的服务相关的不同消息。 例如:tabadmin状态的输出——详细:

'Tableau Server Data Engine' (5980) is running.
'Tableau Server Coordination Service 0' (7528) is running.
'Tableau Server Search and Browse 0' (10172) is running.
'Tableau Server Tabadmin Service 0' (4788) is running.
'Tableau Server Application Server 0' (9876) is running.

我想知道所有未运行的服务并打印它们。

这个批处理代码怎么样

@echo off
for /F "tokens=1,3* delims='()" %%A in ('tabadmin.exe status --verbose') do (
    if "%%C" == " is running." (
        echo "%%A" is running with identifier %%B.
    ) else (
        echo "%%A" is not running.
    )
)
FOR的命令在后台以
cmd/C
启动的单独命令过程中执行命令行
tabadmin.exe status--verbose
,并捕获写入处理STDOUT的所有输出

然后,FOR逐行处理捕获的输出,忽略空行和以分号开头的行,这些分号在捕获的输出中不存在

使用指定的分隔符
'()
将行拆分为子字符串(标记)

之间的第一个子字符串很有趣,因此使用
标记=1
引用。它被分配给指定的循环变量
A

第二个子字符串只是
)之间的空格字符。此空格字符不需要,因此被忽略

第三个子字符串是圆括号之间的标识符编号。该字符串很重要,因此在
tokens=
选项中用
3
引用。它被分配给指定循环变量
A
之后的下一个循环变量,根据该变量是循环变量
B

最后一个子串是
之后直到行尾的所有内容,因为
*
之后
3
标记=1,3*
的末尾,它被分配给循环变量
C

要了解所使用的命令及其工作方式,请打开命令提示符窗口,在其中执行以下命令,并非常仔细地阅读为每个命令显示的所有帮助页面

  • echo/?
  • 获取/?
  • 如果/?

您是否尝试过
选项卡管理状态--verbose>log.txt 2>&1
?如果是,结果如何?