第一个问题用批处理解决:
[Shell] 纯文本查看 复制代码@echo off
setlocal enabledelayedexpansion
REM 切换到当前批处理文件所在目录
cd /d "%~dp0"
REM 遍历当前目录下所有文件(不包括子目录)
for %%F in (*.*) do (
REM 获取文件名(不含扩展名)
set "filename=%%~nF"
REM 获取完整文件名(含扩展名)
set "fullname=%%F"
REM 创建以文件名命名的文件夹(如果不存在)
if not exist "!filename!" (
mkdir "!filename!"
)
REM 将文件移动到对应文件夹
move "%%F" "!filename!" >nul
)
echo 所有文件已整理完成。
pause
使用说明:
把上面代码复制粘贴到记事本中,保存为 .bat 文件,比如 整理文件.bat。
把这个 .bat 文件放到你想批量整理文件的目录中。
双击运行该批处理文件,它会:
读取当前目录下的所有文件;
为每个文件创建一个以其“文件名”命名的文件夹;
把该文件移到对应的文件夹里。
⚠️ 注意事项:
此脚本不会处理子目录中的文件。
如果多个文件名相同但扩展名不同(如 test.txt 和 test.log),它们都会尝试移入同一个文件夹 test。
若目标文件夹中已有同名文件,move 操作会提示是否覆盖或跳过。你也可以替换为 move /Y 强制覆盖。