1

2 つの *.log ファイルを 1 つのファイルにコピーする方法を探しています。私の意図は、 For /R を使用して各ファイル名を変数に設定することでした。思ったほど簡単ではありません。ログ ファイルには毎週異なるランダムな名前が付けられ、Kip.log という名前の 1 つのファイルに結合したいと考えています。

私は次のようになりました:

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

私はさらに先に進む方法がわかりません。

4

4 に答える 4

3

2 つのログ ファイルがあると仮定すると、d:\tempこれで十分です。

@echo off
pushd "d:\temp"
copy *.log kip.txt
ren kip.txt kip.log
于 2013-10-15T08:25:25.650 に答える
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

2 つの変数を設定する必要がある理由はわかりません。連結タスクの場合は必要ありません。

上記は、&echo========%%~fF============見つかったファイル名にセパレーターを追加するだけです。これは必須ではなく、必要に応じて省略できます。

単に変数を削除するために変数内のファイル名が「必要」な場合は、

del /sd:\temp*.log

そのタスクの簡単な作業になります。

于 2013-10-15T04:40:18.940 に答える