请帮助我创建一个脚本来执行下面描述的任务。我有 2 个文件。A.txt 和 B.txt A.txt 的内容如下
ITEM
name TICKY
title nice coffe drink
type DRINK
ITEM
name APPLE
title sweet tasty apple
type FRUIT
ITEM
name JUICE
title nice tasty drink
type DRINK
ITEM
name ORANG
title niice nice orange
type FRUIT
ITEM
name CHERY
title nutritious rich fruit
type FRUIT
现在我需要在 A.txt 中搜索单词“FRUIT”,然后将“FRUIT”顶部的第二行复制到名为
list.txt。但我只需要水果的名称,其中 list.txt 应该如下所示。
APPLE
ORANG
CHERY
这是我的编码(powel shel)来执行此操作...
$source = "C:\temp\A.txt"
$destination = "C:\temp\list.txt"
$hits = select-string -Path $source -SimpleMatch "type FRUIT" -CaseSensitive
$filecontents = get-content $source
foreach($hit in $hits)
{
$filecontents[$hit.linenumber-3]| out-file -append $destination
"" |out-file -append $destination
}
这将提取第二行,如下所示
name APPLE
name ORANG
name CHERY
下面的编码(.bat)将删除单词“name”。
@echo off
setlocal enabledelayedexpansion
del list2.txt
for /f "tokens=*" %%a in (C:\temp\list.txt) do (
set line=%%a
set chars=!line:~-13,13!
echo !chars! >> list2.txt
)
作为第二阶段,现在我需要在我的 B.txt 中的 list.txt 文件中搜索单词 (APPLE、ORANG、CHERY......)。B.txt 将会
如下所示。
ITEM
p_date 10/03/15
pt_time 11:29:40:00
title nice coffe drink
name TICKY
stock yes
end
ITEM
p_date 10/03/15
pt_time 11:29:40:00
title sweet tasty apple
name APPLE
stock yes
end
ITEM
p_date 10/03/15
pt_time 11:29:40:00
title nice tasty drink
name JUICE
stock yes
end
ITEM
p_date 10/03/15
pt_time 11:29:40:00
title niice nice orange
name ORANG
stock yes
end
ITEM
p_date 10/03/15
pt_time 11:29:40:00
title nutritious rich fruit
name CHERY
stock yes
end
现在,我必须从 B.txt 中的 list.txt 搜索世界,并提取前 3 行并将其写入新文件中
名为 done.txt ............下面是我的编码(powershel)。
$source = "C:\temp\B.txt"
$destination = "C:\temp\done.txt"
$patterns = Get-Content c:\temp\list2.txt | Where-Object{$_}
$results = Select-String c:\temp\done.txt -Pattern $patterns -SimpleMatch
$results.Line | ForEach-Object{"$_`r`n"} | Set-Content c:\temp\done.txt
foreach($hit in $hits)
{
$filecontents[$hit.linenumber-4]| out-file -append $destination
$filecontents[$hit.linenumber-3]| out-file -append $destination
$filecontents[$hit.linenumber-2]| out-file -append $destination
$filecontents[$hit.linenumber-1]| out-file -append $destination
"" |out-file -append $destination
}
我设法为此开发了代码。但我需要 3 个脚本文件(2 个 powershel 和 1 个批处理)才能完成此操作。请
帮助我用一个脚本完成这项任务。最好是 .vbs 或 .bat。请帮帮我...谢谢。