2014-03-13 102 views
0

我正在嘗試編寫一個批處理腳本,該腳本將複製在大於700MB的目錄中創建的最新文件。我需要文件大小,因爲我不想複製當前正在創建的文件,因此比典型的備份文件要小。複製最新文件大於700MB的批處理腳本

有人能夠修改下面的腳本以包含> 700MB的要求嗎?

謝謝!

:: Erase the content of the "sql_individual_backup" directory 
cd "C:\Backup\sql_individual_backup" 
del *.* /Q 

:: Start to copy over the most recent file 
@echo off 

set "source=C:\Backup\sql_hourly" 
set "dest=C:\Backup\sql_individual_backup" 

pushd "%source%" ||(
echo.Source does not exist&pause&goto EOF) 

for /f "tokens=*" %%f in (
'dir /A-D /OD /B') Do set "file=%%f" 

popd 

xcopy /d /i "%source%\%file%" "%dest%\" 

:: Close the command prompt window 
exit 0 
+1

檢查當前寫入權限(例如,如[本SO線程](http://stackoverflow.com/a/10520609/1947205)中所述)是否更好,而不是依賴某些文件大小限制(這是非常危險的)? –

回答

0

This SO answer概述瞭如何在批處理腳本中獲取文件的大小。有了這些信息,您應該能夠擴展您的腳本以滿足您的需求。

@echo off 
setlocal 
set file="test.cmd" 
set maxbytesize=1000 

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA 

if %size% LSS %maxbytesize% (
    echo.File is ^< %maxbytesize% bytes 
) ELSE (
    echo.File is ^>= %maxbytesize% bytes 
) 

但正如我在評論中已經提到的,我不會依賴於一個固定的文件大小,而是檢查文件是否正在寫入=被鎖定,在this SO thread概述)。

相關問題