windows - 将命令的结果保存在变量中,Windows 批处理

标签 windows batch-file set

我正在尝试编写一个批处理脚本,将命令的结果保存在变量中。这样我以后就可以使用它。

例如,我尝试在脚本上运行它: sc queryex“服务”|find/i“pid”

但我想将此结果保存在变量中。

set PIDRS=sc queryex "Themes" |find /i "pid"
ECHO "%PIDRS%

有什么想法吗?

最佳答案

for /f "tokens=* delims=" %%# in ('sc queryex "Themes" ^|find /i "pid"') do set "PIDRS=%%#"
echo %PIDRS%

这会将整行设置为PIDRS

以下是仅获取 pid 的方法:

@echo off

set "rspid="
for /f "skip=9 tokens=2 delims=:" %%# in ('sc queryex "Themes"') do (
  if not defined rspid set /a rspid=%%#
)

第二个不使用额外的 FIND,理论上应该会更快。

关于windows - 将命令的结果保存在变量中,Windows 批处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215819/

相关文章:

windows - 将正斜杠附加到文件中特定行的末尾

powershell - 从 Windows 资源管理器 'Send To' 菜单调用 powershell 命令

c++ - std::set< struct > 按 struct c++ 中的属性值排序

MySQL InnoDB 插入性能 (Windows)

c# - 递归处理文件夹中文件的快速(低级)方法

c++ - _chkstk() 函数的目的是什么?

c# - 如何找到集合的所有分区

c# - 在将文件流式传输给用户时在 ASP.NET(通过服务器)中下载文件

batch-file - 使用标题元数据作为输出文件名 ffmpeg

c++ - STL map 迭代器集