Windows 10下如何自动批量分配文件至指定文件夹
Windows 10下如何自动批量分配文件至指定文件夹
嗨,这个需求我刚好帮朋友处理过,给你两种不用装额外软件的方法,都是Windows 10自带的工具,上手超简单:
方法一:用批处理脚本(Command Prompt)
这个方法适合习惯用命令行的朋友,步骤很简单:
- 打开记事本,把下面的代码复制进去
- 把记事本文件保存成
分配文件.bat(注意后缀是.bat,不是.txt) - 把这个bat文件放到你的主文件夹里(就是有500个txt和50个Folder的文件夹)
- 双击运行它就行
@echo off setlocal enabledelayedexpansion set "filecount=0" set "foldernum=1" for %%f in (*.txt) do ( set /a filecount+=1 move "%%f" "Folder !foldernum!" if !filecount! equ 10 ( set filecount=0 set /a foldernum+=1 ) ) echo 分配完成啦! pause
简单解释下这段代码:
- 它会遍历当前文件夹里所有的
.txt文件 - 每移动10个文件,就自动切换到下一个
Folder X文件夹 - 完全按照文件夹的命名顺序(Folder1到Folder50)来分配,刚好500个文件全部分完
方法二:用PowerShell脚本(更灵活)
如果你觉得批处理不够直观,试试PowerShell,功能更强,步骤也差不多:
- 打开记事本,复制下面的代码
- 保存成
分配文件.ps1(后缀是.ps1) - 右键点击这个ps1文件,选择“用PowerShell运行”(如果提示权限问题,先以管理员身份打开PowerShell,输入
Set-ExecutionPolicy RemoteSigned,按Y确认)
$files = Get-ChildItem -Filter *.txt $folders = Get-ChildItem -Directory | Sort-Object Name $filesPerFolder = 10 for ($i = 0; $i -lt $folders.Count; $i++) { $startIndex = $i * $filesPerFolder $endIndex = $startIndex + $filesPerFolder - 1 $filesToMove = $files[$startIndex..$endIndex] Move-Item -Path $filesToMove.FullName -Destination $folders[$i].FullName } Write-Host "文件分配完成!" -ForegroundColor Green
这个脚本的优势是:
- 会自动按名称排序文件夹,确保分配顺序正确
- 就算你的文件夹命名有小变动(比如不是严格的Folder1到Folder50,只要名称排序后是对的)也能正常工作
- 执行完成后会用绿色字体提示你搞定了
注意事项
- 运行前最好先备份一下文件,避免意外情况(虽然这两个脚本都是经过测试的,但小心驶得万年船嘛)
- 确保你的50个文件夹确实是按名称排序好的(比如
Folder 1、Folder 2...Folder 50),不然分配顺序会乱哦
备注:内容来源于stack exchange,提问作者Yusya




