批处理脚本 - 查找 String "Name" return ID 对应的字符串

Batch script - Look for String "Name" return ID corresponding to the string

我有一个脚本可以在文件中查找字符串 "SiteName"。我想做的是 If string = "SiteName" return 对应的ID号.

@echo off
set SiteID
%SiteID% = findstr /s /b "SiteName" %WinDir%\System32\Inetsrv\Config\applicationHost.Config

在我的文件中我有这个 <site name="SiteName" id="3" serverAutoStart="true"> 我想将 ID 存储在 %SiteID% 变量中。

FOR /f "usebackqtokens=1-3delims=<=> " %%a IN ("%filename1%") DO (
 if "%%a"=="site" if "%%b"=="name" set siteid=%%~c
)
echo %siteid%

将在文件名中搜索结构为

的行

分隔符站点分隔符名称分隔符"requireddata"随便什么

其中 分隔符<=>Space[= 中的任何一个41=]

usebackq 允许引用文件名(在您指定时可能是常量)(如果它包含分隔符则需要),~ 删除第三个标记周围的任何引号(标记是分隔符字符串之间的字符串)