1

我正在尝试找到一种将两个 *.log 文件复制到一个文件中的方法。我的意图是使用 For /R 将每个文件名设置为一个变量。没有我想的那么容易。日志文件每周都会有不同的随机名称,我想将它们合并到一个名为 Kip.log 的文件中。

我只做到了:

FOR /R D:\Temp %F in (*.log) do echo %~nxF

我不知道如何更进一步。

4

4 回答 4

3

假设两个日志文件都在,d:\temp那么这就足够了。

@echo off
pushd "d:\temp"
copy *.log kip.txt
ren kip.txt kip.log
于 2013-10-15T08:25:25.650 回答
2

如果您可以使用通配符仅指定您想要的文件,那么这将起作用

复制 *.log kip.log

或者

复制 a*.log+b*.log kip.log

键入复制/?求助

于 2013-10-15T07:21:45.253 回答
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

希望有帮助。

于 2013-10-15T03:56:26.213 回答
0
@ECHO OFF
SETLOCAL
(
 FOR /r D:\temp %%F IN (
  zd*.*
  ) DO TYPE "%%~fF"&echo========%%~fF============
)>KIP.LOG
GOTO :EOF

您没有说为什么需要设置两个变量;对于连接任务,没有必要。

&echo========%%~fF============上面只是添加了一个带有找到的文件名的分隔符。它不是必需的,如果您愿意,可以省略。

如果您“需要”变量中的文件名只是为了删除它们,那么

删除 /sd:\temp*.log

将完成这项任务。

于 2013-10-15T04:40:18.940 回答