用于将文件名设置为变量的命令脚本

时间:2013-10-15 03:40:52

标签: batch-file

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

我只有:

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

我不知道如何进一步发展。

4 个答案:

答案 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

将完成该任务的短期工作。