2011-03-17 58 views
0

我想寫一個批處理腳本/ vbs應該逐行讀取文本文件並搜索關鍵字。如果找到關鍵字,它應該重定向到輸出文件。批量/ vbs讀取文本文件

樣品日誌是如下,

星期二01/09/2000 下午6時53
-------- C:\數據--------
C:\ DATA \ 2009年
C:\ DATA \ 2010
C:\ DATA \ 2011
C:\ DATA \則Filename.txt
C:\ DATA \ Fileusage
C:\ DATA \ Guidline.xml C:\ Data \ 2009 \ 12
C:\數據\ 2009 \ 12 \ 01 \ 667e33999.txt
C:\數據\ 2009 \ 12 \ 01 \ 667e45454999.xml
C:\數據\ 2009 \ 12 \ 09 \ 667dfder999.pdf
Ç :\數據\ 2009 \ 12 \ 09 \ 667e332324.pdf
C:\數據\ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C:\資源\發現\ 233.txt
C:\資源\發現\ 234.txt
C:\資源\發現\ 235.txt
C:\資源\發現\ 236.txt
C:\資源\發現\ 237.txt
C:\資源\發現\ 238。 txt
C:\資源\發現\歷時\ 433.txt
C:\資源\發現\歷時\ 239.txt
C:\資源\發現\歷時\ 890.txt
C:\資源\發現\歷時\ 121.txt
C:\資源\發現\歷時\ 009.txt
C:\資源\發現\歷時\ 999.txt
總文件列入:
12文件(一個或多個)7234336個字節
0 Dir(s)3,413,392,345字節免費

基本上我想捕捉任何以C:\ D開頭的行ATA \年份\月和C:\資源\發現\歷時

輸出如下

C:\數據\ 2009 \ 12 \ 01 \ 667e33999.txt
C:\數據\ 2009 \ 12 \ 01 \ 667e45454999.xml
C:\數據\ 2009 \ 12 \ 09 \ 667dfder999.pdf
C:\數據\ 2009 \ 12 \ 09 \ 667e332324.pdf
C:\數據\ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C:\資源\發現\歷時\ 433.txt
C:\資源\發現\歷時\ 239.txt
C:\資源\遇見NGS \歷時\ 890.txt
C:\資源\發現\歷時\ 121.txt
C:\資源\發現\歷時\ 009.txt
C:\資源\發現\歷時\ 999.txt

任何人都可以幫我一把嗎?

+0

你目前的代碼是什麼?閱讀'for /?','cmd /?'和'set /?',或者看看[dostips.com](http://www.dostips.com) – jeb 2011-03-17 14:32:08

+0

@jeb:這比這更容易。 – Joey 2011-03-17 17:11:50

回答

2

您可以使用findstr

findstr /b /r "C:\\Resource\\Findings\\Lasted\\ C:\\Data\\[0-9][0-9][0-9][0-9]\\[0-9][0-9]\\." data.dump 

findstr是從一個文件,該文件是我們在這裏做什麼過濾線。首先我們啓用與/r的正則表達式匹配。不要被欺騙,這些都是非常非常小的正則表達式,它們會不時地破壞,所以它們可能會很棘手。 /b用於匹配一行的開頭。然後是空格分隔的要查找的列表,在此例中爲C:\Resource\Findings\Lasted\C:\Data\Year\Month,其中年份爲四位,月份爲兩位數。

+0

我也認爲findstr,但我認爲它不能搜索regEx-Basic模式下的兩個不同的字符串 – jeb 2011-03-17 18:02:11

+0

下面是我的批處理腳本..任何人都可以幫我修復它? @echo off> result&setlocal enabledelayedexpansion for/f「tokens = * delims =」%% i in('dir/b file.txt')do( findstr/b/r「C:\\ Resource \\ Findings \\ Lasted \\ C:\\ Data \\ [0-9] [0-9] [0-9] [0-9] \\ [0-9] [0-9] \\。「< %%i > > result.txt ) – user664481 2011-03-19 09:34:13

+0

@user:以正常方式提問(請包括更多信息)。關於隨機答案的隨機評論通常被忽略(我現在也會這樣做)。 – Joey 2011-03-20 19:39:18