如何使用批处理脚本从文本文件中捕获变量?

时间:2016-02-25 21:45:05

标签: string parsing batch-file cmd

您好我正在尝试编写一个读取长文本文件的批处理脚本,找到一行说:

地点:xxxxxxxx

并将xxxxxxxx(仅)保存为我稍后可在脚本中使用的变量。

xxxxxxxx是一个ID,该行没有其他内容。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

这个简单的任务只需要几个标准的Windows命令:

curl -v -u myusername:mypassword -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d'{"type":"page","title":"new page","space":{"key":"ATTACH"},"body":{"storage":{"value":"<p>This is a new page</p>","representation":"storage"}}}' "https://kensci.atlassian.net/wiki/collector/pages.action?key=MyKey/?os_authType=basic"

在第二行,必须定义带路径的文本文件的名称。

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • @echo off set "TextFile=C:\Temp\Text file to search for location.txt" if not exist "%TextFile%" echo Can't find file: %TextFile% & goto :EOF for /F "usebackq tokens=1* delims=: " %%A in ("%TextFile%") do ( if /I "%%A" == "Location" ( set "Location=%%B" goto FoundLocation ) ) echo No location found in file: %TextFile% goto :EOF :FoundLocation echo Location is: %Location%
  • echo /?
  • for /?
  • if /?
  • goto /?

答案 1 :(得分:0)

这也有效。

for /f "tokens=2" %a in ('type longtextfile.txt ^|findstr /b "Location"') do set location=%a
echo %location%

编辑:添加Aacini更有效的方法:

for /f "tokens=2" %a in ('findstr /b "Location" longtextfile.txt') do set location=%a
echo %location%