2 つの *.log ファイルを 1 つのファイルにコピーする方法を探しています。私の意図は、 For /R を使用して各ファイル名を変数に設定することでした。思ったほど簡単ではありません。ログ ファイルには毎週異なるランダムな名前が付けられ、Kip.log という名前の 1 つのファイルに結合したいと考えています。
私は次のようになりました:
FOR /R D:\Temp %F in (*.log) do echo %~nxF
私はさらに先に進む方法がわかりません。
2 つの *.log ファイルを 1 つのファイルにコピーする方法を探しています。私の意図は、 For /R を使用して各ファイル名を変数に設定することでした。思ったほど簡単ではありません。ログ ファイルには毎週異なるランダムな名前が付けられ、Kip.log という名前の 1 つのファイルに結合したいと考えています。
私は次のようになりました:
FOR /R D:\Temp %F in (*.log) do echo %~nxF
私はさらに先に進む方法がわかりません。
2 つのログ ファイルがあると仮定すると、d:\temp
これで十分です。
@echo off
pushd "d:\temp"
copy *.log kip.txt
ren kip.txt kip.log
変数を設定 (および追加) するには、次のようにします。
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
それが役に立ったことを願っています。
@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
そのタスクの簡単な作業になります。