2017-07-28 129 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

非常感谢。 :) –

相关问题