2016-08-04 18 views
2

我已經完成了一些搜索,找不到任何需要的東西,而且我的代碼由於某種原因而不工作。批處理腳本在目錄中搜索字符串並將結果保存到文件中

我有一個文件夾包含多個子目錄與日誌文件,有點像這樣;

  1. 天1日誌
    • 登錄機器1
    • 登錄機器2
    • 登錄機3
  2. 第2天記錄
    • 登錄機器1
    • 登錄蘋果電腦海因2
    • 登錄機3

等等...

我寫信是應該進入每個子目錄下的腳本,搜索字符串中每個文件目錄,並輸出出現的次數到文件該目錄中

預期結果:

  1. 個第1天日誌
    • 登錄機器1
    • 登錄機器2
    • 登錄機3
    • 成績
  2. 第2天記錄
    • 登錄機器1
    • 登錄機2
    • 登錄機3個
    • 結果

然後,我有一個腳本,通過去和它自己的zip文件,用於歸檔目的拉鍊了每個文件夾。

這裏是我的代碼:

ECHO /// UNZIPPING ALL FOLDERS AND DELETING ORIGINAL ZIPS /// 
FOR /R "C:\Users\xxx\Desktop\LogQueue" %%I in ("*.zip") do (
    "%ProgramFiles%\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI" 
) 
del /s /q /f C:\Users\pat\Desktop\LogQueue\*.zip 

ECHO /// SEARCHING FOR STRING AND SAVING TO EXPORT FILE /// 
cd "C:\Users\pat\Desktop\LogQueue"  
for %%f in (*.log) do findstr /i /m /p /c:"error" "%%f" >> results.txt 


ECHO /// ZIPPING EVERYTHING BACK UP /// 
for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X_new.zip" "%%X\" 

任何幫助表示讚賞。無論出於何種原因,搜索功能都沒有任何作用。解壓縮和重新壓縮過程正常工作。

+0

一個精心製作的問題的例子,易於閱讀和理解。 – sambul35

回答

3

將此腳本保存爲analyze.bat,從Cmd提示符運行,嘗試調試任何錯誤。讓我知道,如果需要幫助:

@echo off 
set dir=%USERPROFILE%\Desktop\LogQueue 
echo /// UNZIPPING ALL FOLDERS AND DELETING ORIGINAL ZIPS /// 
for /R "%dir%" %%I in ("*.zip") do (
    "%ProgramFiles%\7-Zip\7z.exe" x -y -o"%%~dpnI" "%%~fI" 
    del /s /q /f %%I) 
echo /// SEARCHING FOR STRING AND SAVING TO EXPORT FILE /// 
for /R "%dir%" %%G in (.) do (
    pushd "%%G" 
    for %%H in (*.log) do find /i "error" "%%H" >> results.txt 
    echo /// ZIPPING %%G folder /// 
    for %%X in (*.*) do "c:\Program Files\7-Zip\7z.exe" a "%%X_new.zip" "%%G\" 
    popd) 
echo/& echo Completed 
timeout 5 
exit /b 
+2

也許使用包含用戶名的變量會更好。 'set「dir = C:\ Users \%USERNAME%\ Desktop \ LogQueue」'。更好的可能是'設置'dir =%USERPROFILE%\ Desktop \ LogQueue「'。 – lit

+2

現在進行測試,但看起來它完美無缺!非常感謝!我真的爲爭取陳述而苦苦掙扎。只是無法設法將搜索和zip函數嵌套到同一個語句中。 – Patrick

+1

@Liturgist同意,如果他正在訪問自己的個人資料。 :) – sambul35

相關問題