2012-09-06 71 views
0

我們有如下所示的日誌文件。批處理腳本僅顯示文本文件每行的幾個字

我需要一個批處理腳本來顯示/soft的輸出。即輸出必須如下:

SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 

它不應該顯示整個路徑。

腳本應該從D:\custom.txt和 打印讀取日誌文件輸出到不同的文件中像SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml

=========================================================================== 
           Custom FILES         
=========================================================================== 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\02-07-2012_2108\SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\02-07-2012_2108\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\05-07-2012_1950\SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\05-07-2012_1950\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\06-07-2012_1949\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\09-07-2012_1948\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\09-07-2012_1948\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\11-07-2012_1946\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\11-07-2012_1946\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\17-07-2012_1942\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\19-07-2012_1938\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\23-07-2012_1939\SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
Z:\FCUBS_11.3.1.1.0EURABOILM_SKD\23-07-2012_1939\SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
+0

你需要證明你已經做了嘗試解決問題的工作。 –

回答

1
@echo off 
setlocal enableDelayedExpansion 
>modified.log (
    for /f "delims=" %%A in (original.log) do (
    set "ln=%%A" 
    echo !ln:*\SOFT\=SOFT\! 
) 
) 

的FOR/F語句讀取和處理文件中的所有行。您可以通過在命令行輸入FOR /?HELP FOR來了解它。

關鍵位是!ln:*\SOFT\=SOFT\! - 它搜索文本中的「\ SOFT \」,並從行首開始通過「\ SOFT \」刪除所有內容,並用「SOFT \」替換已刪除的位。您可以閱讀有關字符串搜索的內容,並通過從命令行鍵入SET /?HELP SET來進行替換。

0

的一個班輪:

D:\>FOR /F "tokens=4,5,6,7,8 delims=\\" %G in (infile.txt) DO @echo %G\%H\%I\%J\%K 

SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICCREFPX_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
SOFT\MAIN\Core\RADXML\ICCREFPO_RAD.xml 
SOFT\MAIN\Core\RADXML\ICDREDMN_RAD.xml 
+1

沒有必要加倍反斜槓。另外,(infile.txt)DO @echo%B'中的'FOR/F「標記= 3 * delims = \」%A更簡單,更健壯。最後,這種類型的解決方案去掉標題行,這可能是不可接受的。 – dbenham

相關問題