我正在尝试找到将两个* .log文件复制到一个文件中的方法。我的意图是使用For / R将每个文件名设置为变量。不像我想的那么容易。日志文件每周都会有不同的随机名称,我想将它们组合成一个名为Kip.log的文件。
我只有:
FOR /R D:\Temp %F in (*.log) do echo %~nxF
我不知道如何进一步发展。
答案 0 :(得分:3)
假设两个日志文件位于d:\temp
,那么这就足够了。
@echo off
pushd "d:\temp"
copy *.log kip.txt
ren kip.txt kip.log
答案 1 :(得分:2)
如果您只能使用通配符指定所需的文件,那么这将起作用
copy * .log kip.log
或
复制* .log + b * .log kip.log
键入copy /?寻求帮助
答案 2 :(得分:0)
要设置变量(然后追加),请执行以下操作:
pushd D:\Test
dir /b *.log >> files.tmp
setlocal enabledelayedexpansion
set count=0
for /f %%a in (files.tmp) do (
set /a count+=1
set "file!1!=%%~a"
)
:: Now you have 2 variables (or more) all file[number]
:: Below is to append
copy "%file1%"+"%file2%" Kip.log
希望有所帮助。
答案 3 :(得分:0)
@ECHO OFF
SETLOCAL
(
FOR /r D:\temp %%F IN (
zd*.*
) DO TYPE "%%~fF"&echo========%%~fF============
)>KIP.LOG
GOTO :EOF
您没有说明为什么需要设置两个变量;对于连接任务,没有必要。
上面的&echo========%%~fF============
只是添加了一个找到文件名的分隔符。这不是必需的,如果您愿意,可以省略。
如果您“需要”变量中的文件名只是为了删除它们,那么
del / s d:\ temp * .log
将完成该任务的短期工作。