我在尝试创建批处理脚本以将文件从源 A 复制到源 B 时遇到问题,但需要按日期复制文件大小大于 1KB 的最新文件。它还需要从源 A 复制文件并覆盖位于源 B 中的文件。
我使用下面的脚本作为示例我如何设置它。
xcopy E:\sourceA\testA_* /DA C:\sourceB\TestB.txt /Y
我不知道如何添加命令来抓取大于 1KB 的文件。对此的任何帮助将不胜感激。对不起,脚本不是我的事,而且是新的。
我在尝试创建批处理脚本以将文件从源 A 复制到源 B 时遇到问题,但需要按日期复制文件大小大于 1KB 的最新文件。它还需要从源 A 复制文件并覆盖位于源 B 中的文件。
我使用下面的脚本作为示例我如何设置它。
xcopy E:\sourceA\testA_* /DA C:\sourceB\TestB.txt /Y
我不知道如何添加命令来抓取大于 1KB 的文件。对此的任何帮助将不胜感激。对不起,脚本不是我的事,而且是新的。
我不确定我是否完全理解您的要求,但我认为这就是您的要求
@echo off
pushd "E:\sourceA"
for /f "eol=: delims=" %%F in ('dir /a-d /b /o-d "testA_*"') do (
if %%~zF geq 1024 (
copy /y "%%F" "C:\sourceB\TestB.txt"
goto :break
)
)
:break
如果您只想复制具有 Archive 属性的文件,并且仅当它比现有的 TestB.txt 更新时,则
@echo off
pushd "E:\sourceA"
for /f "eol=: delims=" %%F in ('dir /aa-d /b /o-d "testA_*"') do (
if %%~zF geq 1024 (
echo f|xcopy /dy "%%F" "C:\sourceB\TestB.txt"
goto :break
)
)
:break
@Echo OFF
Setlocal enabledelayedexpansion
:: By Elektro H@cker
::
:: Copy the Newest file in a folder greater than X bytes to a destination directory.
:: You maybe want to modify these variables:
::
Set "Source=%CD%"
Set "Destination=C:\Test\"
Set "Size=1024"
:: :: :: :: :: :: :: :: ::
for /F "tokens=1-4 delims=;" %%a in ('forfiles /P "%SOURCE%" /C "cmd /c echo @fdate;@ftime;@fsize;@path"') do (
If %%c GTR %SIZE% (
Set DAY=%%a
Set DAY=!DAY:/=!
Set HOUR=%%b
Set HOUR=!HOUR::=!
Echo !DAY!!HOUR!;%%d >> "%TEMP%\NewestFile.txt"
)
)
for /F "tokens=2 delims=;" %%# in ('Type "%TEMP%\NewestFile.txt" ^| Sort /R') do (
Copy /Y %%# "%Destination%" 1>NUL
Del /Q "%TEMP%\NewestFile.txt"
Exit
)