Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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
Batch file 如何使用批处理脚本读取文件并基于行中的字符提取行的子集?_Batch File_Substring - Fatal编程技术网

Batch file 如何使用批处理脚本读取文件并基于行中的字符提取行的子集?

Batch file 如何使用批处理脚本读取文件并基于行中的字符提取行的子集?,batch-file,substring,Batch File,Substring,我正在使用ClearCase,我想使用一个批处理脚本来运行通过cleartool命令生成的文本文件,并且只提取包含@字符串的行,从该行的开头一直提取到@字符串,并在前后加引号 一个示例文本文件是: "Created automatically as a result of 'Work On' action in ClearQuest" owner: <owner> group: <group> stream: <stream> title: <title

我正在使用ClearCase,我想使用一个批处理脚本来运行通过cleartool命令生成的文本文件,并且只提取包含
@
字符串的行,从该行的开头一直提取到
@
字符串,并在前后加引号

一个示例文本文件是:

"Created automatically as a result of 'Work On' action in ClearQuest"
owner: <owner>
group: <group>
stream: <stream>
title: <title>
change set versions:
  M:\LEVEL1\PROJECT\src\ROOT@@\main\LEVEL1\6
  M:\LEVEL1\PROJECT\src\ROOT\file 7.txt@@\main\LEVEL1\1
  M:\LEVEL1\PROJECT\src\ROOT\folder 2@@\main\LEVEL1\2
  M:\LEVEL1\PROJECT\src\ROOT\folder 2\file 6.txt@@\main\LEVEL1\1
  M:\LEVEL1\PROJECT\src\ROOT\folder 2\file 8.txt@@\main\LEVEL1\1
  M:\LEVEL1\PROJECT\src\ROOT\folder 2@@\main\LEVEL1\1
  M:\LEVEL1\PROJECT\src\ROOT\file 4.txt@@\main\LEVEL1\2
  M:\LEVEL1\PROJECT\src\ROOT@@\main\LEVEL1\5
  M:\LEVEL1\PROJECT\src\ROOT\file 2.txt@@\main\LEVEL1\4
  M:\LEVEL1\PROJECT\src\ROOT\file 1.txt@@\main\LEVEL1\4
  M:\LEVEL1\PROJECT\src\ROOT@@\main\LEVEL1\3
  M:\LEVEL1\PROJECT\src\ROOT@@\main\LEVEL1\3\file 3.txt\main\LEVEL1\1
clearquest record id: <id>
clearquest record State: <state>
这可能吗

致以最良好的祝愿

安德鲁,给你

for /f "tokens=*" %%a in ('findstr "@@" log.txt') do (
for /f "tokens=1 delims=@" %%b in ("%%a") do (
echo "%%b" >>new.txt
)
)
提取的字符串将在
new.txt
中,请记住将
log.txt
更改为您的真实文本文件:)

for /f "tokens=*" %%a in ('findstr "@@" log.txt') do (
for /f "tokens=1 delims=@" %%b in ("%%a") do (
echo "%%b" >>new.txt
)
)