我是一个批处理命令的新手。 但是我知道这是将日志文件从特定文件夹移动到另一个目录的最快方式。
我尝试了这个检查MOVE命令,似乎没有足够的解释,如果我想放置一个filter,以提取超过10MB的文件大小:
有一个链接 ,他通过名称过滤他的文件:(实际上这是正确的,但不是我所要求的)
例如,如下所示,我想将file1.txt
移动到目标文件夹,并且小于10mb的file2.txt
将保留在源文件夹中。
源文件夹:
file1.txt 10,000kb
file2.txt 9,500kb
目标文件夹:
空(没有文件)
– – – – -结果 – – – – –
源文件夹:
file2.txt 9,500kb
目标文件夹:
file1.txt 10,000kb
如果任何人都可以帮助我,这将是伟大的!
@echo off setlocal enableextensions disabledelayedexpansion set "sourceFolder=%cd%" set "targetFolder=%cd%\target" set "minSize=10485760" for /f "tokens=*" %%a in (' robocopy "%sourceFolder%" "%sourceFolder%" /l /is /nocopy /njh /njs /nc /ns /ndl /min:%minsize% ') do echo move /y "%%~fa" "%targetFolder%"
这使用了robocopy
命令(它并没有直接用来移动文件,因为它不会使用移动操作,而是首先复制到目标文件,然后删除源文件),以获取指定最小文件大小的文件列表。 该列表使用for /f
命令进行处理,每个文件执行一次move
操作。
move
命令只能回显到控制台。 如果输出正确,则删除echo
命令。