我是批处理命令的新手。但我知道这是我将速度超过10mb的日志文件从特定文件夹移动到另一个目录的最快方式。
我尝试this检查MOVE命令,似乎它没有解释为什么我想为我提取过滤器来提取大小超过10mb的文件:
还有this one link他通过名字过滤来移动文件:(实际上这是正确的但不完全是我要求的)
例如,如下所示,我想将file1.txt
移动到目标文件夹,而小于10mb的file2.txt
将保留在源文件夹中。
源文件夹:
file1.txt 10,000kb
file2.txt 9,500kb
目标文件夹:
清空(暂无文件)
--------- ---------结果
源文件夹:
file2.txt 9,500kb
目标文件夹:
file1.txt 10,000kb
如果有人能帮助我,那就太棒了!
答案 0 :(得分:1)
@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
命令。