C:\Users\yin\Desktop\123 文件夹有100个文件,要移动20 个文件到C:\Users\yin\Desktop\234文件中,按照最早的时间移动!
A文件夹有文件100个现在要移动20个到B文件夹中,移动时(文件要是以前生成的就移动以前的,要是不足在移动今天的文件。)
没明白你的需求。。。
@echo off
echo 开始
cd "E:\cmdtest\one"
for /f %%A in ('dir /W /B /A-D ^| find /V /C ""') do set cnt=%%A
echo File count = %cnt%
IF %cnt% LEQ 20 goto :break
echo Move oldest 10 files
setlocal
set /a "n=0, limit=10"
FOR /f "delims=" %%i IN ('DIR /A:-D /B /O:D') DO (
echo moving %%i to E:\cmdtest\two
move /-y %%i "E:\cmdtest\two"
2>nul set /a "n+=1, 1/(limit-n)"||goto :break
)
:break
pause
/// <summary> /// 对文件进行移动操作 /// </summary> /// <param name="filePath">A文件夹</param> public void MoveFile(string filePath) { DirectoryInfo dir=new DirectoryInfo(filePath); IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories); //按写入时间查找前20 IEnumerable<System.IO.FileInfo> fileQuery = (from file in fileList orderby file.LastWriteTime descending select file).Take(20); ///移动操作 foreach (var fileInfo in fileQuery) { fileInfo.MoveTo("B文件夹"); } }
比我还懒哦。呵呵!