我想从perforce获取更改列表描述,其中涉及调用p4 describe -s,因此输出将如下所示。有没有办法从输出中获取(从第三行修剪的字符)只使用Windows批处理语法?
Change 6582 by username on 2016/12/06 00:35:41
MyChangeDescription
Affected files ...
... //depot/foo.txt#7 edit
... //depot/foo2.txt#6 edit
答案 0 :(得分:1)
试一试:
p4 -Ztag -F %Description% change -o 6582
答案 1 :(得分:1)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q40986156.txt"
FOR /f "usebackqskip=2tokens=*" %%a IN ("%filename1%") DO (
SET "desc=%%a"
GOTO show
)
:show
ECHO "%desc%"
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
我使用了一个名为q40986156.txt
的文件,其中包含我的测试数据。
这使用文件作为输入。由于我无法访问perforce
,因此无法对其进行测试,而是
@ECHO OFF
SETLOCAL
FOR /f "skip=2tokens=*" %%a IN ('p4 describe -s') DO (
SET "desc=%%a"
GOTO show
)
:show
ECHO "%desc%"
GOTO :EOF
应该是等效的。
简单地说,读取命令的输出,跳过前两行,标记整行,跳过前导空格。将找到的字符串分配给变量并立即退出循环。