2016-09-19 44 views
1
@echo off 
setlocal enabledelayedexpansion 

set _SRCDIR=C:\Users\hyea\Desktop\Testing\Text Files 
set _DSTDIR=C:\Users\hyea\Desktop\Testing\Text Files\TargetFolder 

for /f "tokens=*" %%f in ('dir /b /a-d "!_SRCDIR!\*.COS"') do (
type "%_SRCDIR%\header.txt" > "!_DSTDIR!\%%f" 
type "!_SRCDIR!\%%f" >> "!_DSTDIR!\%%f" 
) 

我有上面的代码,它将头文件与文本文件的内容连接起来,其扩展名为.COS在Windows命令行中接受两种文件类型

只是想知道如何去添加另一个文件扩展名为.RCS,所以.COS.RCS被拿起。

代码的外观如何?

+0

'dir/b/ad“!_SRCDIR!\ *。COS”' - >'dir/b/ad“!_SRCDIR!\ *。COS”“!_SRCDIR!\ *。RCS”' – aschipfl

+0

它似乎没有做anthing,这是正确的:@echo off setlocal enabledelayedexpansion set _SRCDIR = C:\ Users \ hyea \ Desktop \ Testing \ Text Files set _DSTDIR = C:\ Users \ hyea \ Desktop \ Testing \ Text Files \ TargetFolder for/f“tokens = *”%% f in('dir/b/ad“!_SRCDIR!\ *。COS” - > dir/b/ad“!_SRCDIR!\ *。COS “!_SRCDIR!\ *。RCS”')do( type“%_SRCDIR%\ header.txt”>“!_DSTDIR!\ %% f” type“!_SRCDIR!\ %% f”>>“! _DSTDIR!\ %% f“ ) – abs786123

+0

不,我的意思是将您左侧的部分替换为您的” - >“部分代码由它的部分权... – aschipfl

回答

2

dir命令接受多个路径/文件名/模式参数,因此只需将第二文件类型添加到这样的命令行:

@echo off 
setlocal enabledelayedexpansion 

set "_SRCDIR=C:\Users\hyea\Desktop\Testing\Text Files" 
set "_DSTDIR=C:\Users\hyea\Desktop\Testing\Text Files\TargetFolder" 

for /f "tokens=*" %%f in ('dir /b /a-d "!_SRCDIR!\*.COS" "!_SRCDIR!\*.RCS"') do (
type "%_SRCDIR%\header.txt" > "!_DSTDIR!\%%f" 
type "!_SRCDIR!\%%f" >> "!_DSTDIR!\%%f" 
) 

此外,我改善了set命令线和放带标记整个赋值表达式,避免潜在特殊字符出现问题,但不包含变量值中的""

+0

谢谢,最好的代码是用来删除单独蝙蝠中TargetFolder的所有内容。文件? – abs786123

+0

它会是del C:\ Users \ hyea \ Desktop \ Testing \ Text Files \ TargetFolder \ *。*然而理想的情况是想要删除.cos和.rcs文件 – abs786123

+0

''''就像'dir',接受多个文件规范也可以这样:'del“C:\ Users \ hyea \ Desktop \ Testing \ Text Files \ TargetFolder * .COS”“C:\ Users \ hyea \ Desktop \ Testing \ Text Files \ TargetFolder * .RCS”'。 .. – aschipfl