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
File 批处理脚本-查找字符串“;名称“;返回与字符串对应的ID_File_Batch File_Command Line_Cmd_Web Deployment - Fatal编程技术网

File 批处理脚本-查找字符串“;名称“;返回与字符串对应的ID

File 批处理脚本-查找字符串“;名称“;返回与字符串对应的ID,file,batch-file,command-line,cmd,web-deployment,File,Batch File,Command Line,Cmd,Web Deployment,我有一个脚本,可以在文件中查找字符串“SiteName”。我要做的是,如果string=“SiteName”返回相应的ID号 @echo off set SiteID %SiteID% = findstr /s /b "SiteName" %WinDir%\System32\Inetsrv\Config\applicationHost.Config 在我的文件中,我有一个我想将ID存储在%SiteID%变量中。对于/f“usebackqtokens=1-3delims=“%%a In”(“%%

我有一个脚本,可以在文件中查找字符串“SiteName”。我要做的是,如果string=“SiteName”返回相应的ID号

@echo off
set SiteID
%SiteID% = findstr /s /b "SiteName" %WinDir%\System32\Inetsrv\Config\applicationHost.Config
在我的文件中,我有一个
我想将ID存储在%SiteID%变量中。

对于/f“usebackqtokens=1-3delims=“%%a In”(“%%filename1%”)DO(
FOR /f "usebackqtokens=1-3delims=<=> " %%a IN ("%filename1%") DO (
 if "%%a"=="site" if "%%b"=="name" set siteid=%%~c
)
echo %siteid%
如果“%%a”==“站点”如果“%%b”==“名称”设置站点ID=%%~c ) 回显%siteid%
将在文件名中搜索结构为

DelimiterSiteDelimiterNameDelimiter“requireddata”无论什么

其中分隔符是
或空格中的任意一个


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

我进行了测试,如果我从
1
5
获取令牌,并且在
set
命令中,我使用
%%~e
变量,它对我有效。在这种情况下,%filename%是文件的路径?是的-我使用了一个变量来包含文件名。哇!那很有效谢谢你!!我将%filename1%替换为文件的路径太棒了!还有一个问题,这是否搜索SiteName站点?以及相应的ID号,因为我有多个不同ID号的网站。