在Windows命令行中接受两种文件类型

时间:2016-09-19 10:50:01

标签: batch-file cmd

@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

我想知道如何将另一个文件扩展名添加到.RCS的文件扩展名中,以便同时选择.COS.RCS

代码怎么样?

1 个答案:

答案 0 :(得分: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命令行并在整个赋值表达式周围加上引号,这避免了潜在特殊字符的问题,但不包括变量值中的""