[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 yhcfsr 于 2018-4-12 18:18 编辑
  1. @echo off
  2. for /f "delims=" %%a in ('type list.txt') do (
  3. if not exist "%%a" md "%%a"
  4. for /f "delims=" %%b in ('dir /a-d/s/b^|findstr /i "%%a"') do if not "%%~dpb"=="%%~fa\" move /y "%%b" "%%a"
  5. )
复制代码
1

评分人数

TOP

本帖最后由 yhcfsr 于 2018-4-12 18:25 编辑

回复 3# fashionben


    2楼已修正。
    这是根据列表建立文件夹,每建一个文件夹就扫描全部文件,将符合要求文件移入新文件夹。
    还有一种方法是,扫描全部文件,将文件与列表进行比对,若文件与列表关键字匹配成功,建立文件夹,再将该文件移入。这种方法只会扫描一次文件,速度应该比上面的方法要快。
1

评分人数

TOP

回复 8# fashionben
  1. @echo off
  2. for /f "delims=" %%a in ('dir /a-d/s/b') do (
  3. set "var=%%a"
  4. for /f %%b in (list.txt) do (
  5. setlocal enabledelayedexpansion
  6. if not "!var:%%b=!"=="!var!" (
  7. if not exist "%%b" md "%%b"
  8. move /y "%%a" "%%b"
  9. )
  10. endlocal
  11. )
  12. )
复制代码
1

评分人数

TOP

返回列表