我是编写批处理文件的新手,并且做了很多研究但无济于事。
- 我现在有什么: 我目前正在使用Mercurial Repository。在我当前的批处理文件中,我需要指定两个不同的修订版作为参数才能使其工作。第一个参数是起始修订号,第二个参数是当前修订号。
- 我想做什么: 我想知道是否有某种方法可以遍历当前分支的修订号,并获取其标记中包含某个子字符串的数字。假设您的修订版1840标记为MyProd_1840,修订版1800标记为MyDev_1800。
-Question: 如果我在最新版本号(例如1855)中,我如何循环以前的数字并获取其字符串中包含“Dev”的修订号;因此,返回1800?“
- 我发现了什么: 到目前为止,我唯一知道的是“hg id -n”返回您当前所在版本的修订号(我假设我可以使用第二个参数)。
非常感谢任何帮助!
答案 0 :(得分:0)
想出来。我的程序目前将包含类似的内容
@echo off
SET COMMAND=hg id -n
SET COMMAND2=hg id -n -r "keyword(champion_prod)"
@echo %COMMAND%
FOR /F "tokens=*" %%A in ('%COMMAND%') DO @set endRev=%%A
echo %endRev%
echo %endRev%
echo %endRev%
@echo %COMMAND2%
FOR /F "tokens=*" %%A in ('%COMMAND2%') DO @set startRev=%%A
echo %startRev%
echo %startRev%
echo %startRev%
endlocal
exit /b 0
以防其他人遇到同样的问题。在COMMAND2中需要关键字(champion_prod),因为当你在For中调用COMMAND2时,cmd提示符会认为你正试图在命令中调用命令并给你一个“)此时是意外的”错误。“hg id -n -r keyword(string)”将返回包含给定字符串的最新修订号(我相信它会搜索描述以及所述字符串的标记。我可能在标记上出错了)。但这对我有用。