首页 新闻 搜索 专区 学院

文件按照时间顺序移动

0
悬赏园豆:20 [已解决问题] 解决于 2013-03-26 15:53

C:\Users\yin\Desktop\123 文件夹有100个文件,要移动20 个文件到C:\Users\yin\Desktop\234文件中,按照最早的时间移动!

BAT
问题补充:

A文件夹有文件100个现在要移动20个到B文件夹中,移动时(文件要是以前生成的就移动以前的,要是不足在移动今天的文件。)

流逝的光辉岁月的主页 流逝的光辉岁月 | 初学一级 | 园豆:95
提问于:2013-03-26 12:10
< >
分享
最佳答案
0

没明白你的需求。。。

收获园豆:20
顾晓北 | 专家六级 |园豆:10241 | 2013-03-26 13:20
其他回答(2)
0

 @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

流逝的光辉岁月 | 园豆:95 (初学一级) | 2013-03-26 15:53
1
/// <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文件夹");
            }
        }

比我还懒哦。呵呵!

amityat | 园豆:476 (菜鸟二级) | 2013-03-26 16:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册