2017-07-28 98 views
1

我是windows批處理命令的新手,所以請爲我提供任何不相關的幫助。 基本上我想合併使用類型命令的Windows某些文件,但由於這些文件來自各種來源,我需要在文件名搜索源過濾器,只合並這些文件。我已經嘗試寫下面的代碼,但它沒有爲我做這項工作。批處理文件合併到一個特定的文件?

@echo off 
set filter=%1 
set final_file=%2 
echo %filter% 
echo %final_file% 
for %f in (*.dlt) do(
    echo %f 
    if find %filter "%f ( 
     do type "%f" >> %final_file 
    ) 
) 
+0

你的'for'語句中的'%f'必須是'%% f'。如果從批處理文件運行,則需要將「變量」上的'%'加倍。可悲的是,你的問題描述「這不是爲我工作」並沒有給我們提供很多線索,說明爲什麼這個過程沒有達到你期望的效果。 – Magoo

+0

@Mangoo你會如何解決上述問題?只需簡單地考慮一下,你必須循環擴展名爲.dlt的所有文件,並且文件名必須包含過濾器'Engine'(例如:Filexxx_Engine_27_07_2017_01.dlt),然後使用type命令將所有這些文件合併到Engine_All.dlt中? –

+0

你只想合併'* .dlt'文件?你的主文件夾位於哪裏? – Hackoo

回答

1

這裏是我做了合併在一個文件中的所有文件*.bat一個例子;所以你可以很容易地修改您的需求: 只要你需要修改變量Set "Filter_Ext=dlt"Set "MasterFolder=%userprofile%\desktop"到你

@echo off 
Mode 75,3 & Color 9E 
Title Merge all *.bat in one file 
Set "MasterFolder=%userprofile%\desktop" 
Set "OutPut=Output_Merged_Files.txt" 
Set "Filter_Ext=bat" 
If exist "%OutPut%" Del "%OutPut%" 
echo(
echo   Please Wait a while we generate the output file ... 
@For /f "delims=" %%a in ('Dir /s /b /A-D "%MasterFolder%\*.%Filter_Ext%"') Do (
cls 
echo(
echo   Please Wait a While ... Merging "%%~nxa" ... 
    (
     echo ==================================================== 
     echo Contents of "%%a" 
     echo ==================================================== 
     Type "%%a" 
     echo(
    )>> "%OutPut%" 
) 
Start "" "%OutPut%" 

編輯合併所有.dlt在一個文件中

@echo off 
Mode 75,3 & Color 9E 
Title Merge all *.dlt in one file 
Set "MasterFolder=%~1" 
Set "OutPut=Output_Merged_Files.txt" 
Set "Filter_Ext=dlt" 
Set "KeyWord=Engine" 
If exist "%OutPut%" Del "%OutPut%" 
echo(
echo   Please Wait a while we generate the output file ... 
@For /f "delims=" %%a in ('Dir /s /b /A-D "%MasterFolder%\*.%Filter_Ext%" ^|find /I "%KeyWord%"') Do (
cls 
echo(
echo   Please Wait a While ... Merging "%%~nxa" ... 
    (
     echo ==================================================== 
     echo Contents of "%%a" 
     echo ==================================================== 
     Type "%%a" 
     echo(
    )>> "%OutPut%" 
) 
Start "" "%OutPut%" 
每個
+0

這是完美的,但我只需要兩個小修改,1.在所有的dlt文件中,我只想合併dlt文件,這些文件在文件名和2中爲引擎字符串。我將從python調用這個文件,因此我需要將這些數據作爲參數傳遞。 –

+0

檢查我的最後編輯 – Hackoo

+0

非常感謝。 :) –

相關問題