- 首先把excel表另存为.txt文件(注意:刚开始可能是ANSI格式,需要转成UTF-8格式);
- 再新建一个.txt文件,重命名成.bat文件(注意:直接创建的如果是是UTF-8格式,最好转成ANSI格式,虽然UTF-8格式的.bat文件不影响运行结果,但是可能运行的时候出现乱码);
- bat文件自动分类代码:
@echo off
echo 测试中
setlocal enabledelayedexpansion
REM excelFileName是Excel表另存为的文件名,folderPath是存放的文件夹的路径
set "excelFileName=filename.txt"
set "folderPath=C:\Users\pc\Desktop\test"
REM 读取Excel文件数据
for /f "skip=1 tokens=1,2 delims= " %%A in (%excelFileName%) do (
set "folderName=%%A"
set "category=%%B"
REM 创建对应分类的文件夹
if not exist "%folderPath%\!category!" (
mkdir "%folderPath%\!category!"
)
REM 移动文件夹到对应分类的文件夹中
move "%folderPath%\!folderName!" "%folderPath%\!category!"
)
echo 文件夹已按分类移动完成
pause
- 如果想把文件夹还原到原本的路径,可以执行以下代码,bat文件还原代码:
@echo off
setlocal enabledelayedexpansion
set "excelFileName=filename.txt"
set "folderPath=C:\Users\pc\Desktop\test"
REM 读取Excel文件数据
for /f "skip=1 tokens=1,2 delims= " %%A in (%excelFileName%) do (
set "folderName=%%A"
set "category=%%B"
if exist "%folderPath%\!category!\!folderName!" (
move "%folderPath%\!category!\!folderName!" "%folderPath%"
)
)
echo 还原完成
pause
例子:
- Excel文件:
- 文件夹存放:
- 双击执行自动分类后:
参考:
批处理学习:for语句详解【经典】
Windows 批处理(bat)语法大全