1時間に1回など、定期的にファイルをコピーする必要があるため、コピーする必要があるファイルを別のフォルダーにコピーする必要があるというxcopyバッチを設定しようとしました。コピーすると、ファイルが上書きされますが、これは想定されていることではありません。
ファイルがコピーされると、代わりに新しいファイルが作成され、File.txt、File-COPY1.txt、File-COPY2.txt などの名前が付けられます。
それを行う方法はありますか?
前もって感謝します。
1時間に1回など、定期的にファイルをコピーする必要があるため、コピーする必要があるファイルを別のフォルダーにコピーする必要があるというxcopyバッチを設定しようとしました。コピーすると、ファイルが上書きされますが、これは想定されていることではありません。
ファイルがコピーされると、代わりに新しいファイルが作成され、File.txt、File-COPY1.txt、File-COPY2.txt などの名前が付けられます。
それを行う方法はありますか?
前もって感謝します。
ファイル名にタイムスタンプを追加するだけで、実行ごとに個別のファイルを作成できます。このようなもの:
XCOPY "File.txt" "[TargetDir]\File1_%time:~0,2%_%time:~3,2%_%time:~6,2%.txt"
File1_11_30_05.txt
これは、コピー操作が 11:30:05 に行われたと仮定して、次のファイル名に解決されます。この%time:~0,2%
部分は、変数に格納されている時間文字列から 2 桁を抽出します%time%
。
さらに、同じ方法で日付を追加することもできます。%date%
この目的で変数を使用できます。
File-COPY1.txt
などのパターンが本当に必要な場合はFile-COPY2.txt
、もう少し作業が必要です。タイムスタンプのアプローチが十分でない場合はお知らせください。
このバッチは、2 つのディレクトリの名前 (相対または明示) を取得し、最初のディレクトリ内のすべてのファイルを 2 番目のディレクトリにコピーしますが、ファイル名と拡張子の間に -# を追加します (# は、ディレクトリ内のファイルのコピーの数です)。 2 番目のディレクトリ)。MISC.txt
したがって、dir1 から dir2 にコピーされたファイル ( ) が 1 つしかない場合、それが 4 回コピーされている場合、dir2 には 4 つのファイル (MISC-1.txt
MISC-2.txt
MISC-3.txt
およびMISC-4.txt
)が含まれます。
使用するzcopy.bat
には、このように呼び出しますzcopy fromDir toDir
zcopy.bat
@echo off
if "%1"=="" goto :eof
if "%1"=="/?" type %~dpnx0 & goto :eof
if "%2"=="" goto :eof
if not exist %2 md %2
setlocal enableDelayedExpansion
for %%x in (%1\*.*) do (
set this=
set count=1
if "%%~xx"=="" (
set backstop=.
) else (
set backstop=
)
for /f %%y in ('dir /b /a:-d /o:n "%2\%%~nx-*%%~xx!backstop!" 2^>nul') do (
set this=%%~nxy
)
if not "!this!"=="" (
set count=!this:%%~nx-=!
if "%%~xx"=="" (
set /a count=!count!+1
) else (
set /a count=!count:%%~xx=! + 1
)
)
set target=%%~nx-!count!%%~xx
echo copy "%%x" "%2\!target!"
copy "%%x" "%2\!target!" > nul 2>&1
)
ディレクトリ%2
が存在しない場合は、上記のコードによって作成されます。
これを使用して、毎日ファイルのバックアップを作成します。
set aa=%date:~4,2%%date:~7,2%%date:~12,2%
copy filename.txt c:\backupfolder\filename%aa%.txt
それがいくつか役立つことを願っています。スコット……
ファイル名を繰り返します。つまり、新しい名前を付けるたびに。数字を追加するだけです。
1つのカウンターを使用し、インクリメントするたびに、インクリメントされたカウンターはfileNameと連結します