脚本到findstr,然后用变量注入下一行 - 不能让它工作

时间:2014-02-24 16:31:30

标签: batch-file findstr

我有一个我正在研究的脚本,它检查文本文件以匹配pc名称,然后匹配端口号。然后将信息注入到ini文件中以进行特定设置。我在Citrix设置中使用它。

这是我的测试脚本的一部分:

:Set_Client_Name
for /f "tokens=1-3" %%1 in ('query session %USERNAME% ^| find ">"') do set ses_num=%%3
for /f "tokens=1-3" %%1 in ('reg query "HKCU\Volatile Environment\%ses_num%" /v CLIENTNAME') do set client_name=%%3


:CHECK
findstr /i /c:%client_name% "C:\star.txt"
IF ERRORLEVEL 1 goto end

:CREATE
set port=
set parse=findstr /i /c:%client_name% "C:\star.txt"
for /f "tokens=2 delims=," %%a in ('"%parse%"') do (set port=%%a)


for /F %%G IN C:\hbowem32.ini DO (
findstr /i /c:"[0_Network Def.]"
echo Local Port=%port% >> C:\hbowem32.ini

)


:END
`

:Set_Client_Name ,:检查,并且:创建部分正常工作。

我只是对下一件作品做错了,我不确定它是什么。

我需要在hbowem32.ini中找到字符串[0_Network Def。],然后注入%port%变量。我可以将它添加到底部的ini文件中,但我需要它能够在ini的正确部分注入它。

我还想添加一个拉取客户端IP地址的部分(这是终端服务/ Citrix服务器),因此可以将其注入不同的ini /部分。我似乎无法得到它来拉取用户的工作站IP地址。它仅提取Citrix服务器的IP地址。我上面的测试脚本中不再有这个部分了,但我想我会继续问,因为我在这里已经卡住了。

感谢您的任何见解和建议。

1 个答案:

答案 0 :(得分:0)

/L开关添加到FINDSTR,以便您处理L次迭代而不是(默认)R egular表达式。