找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29993|回复: 12

[文本处理] 批处理如何根据Excel表格列出的文件与文件夹对应的关系将文件移动到相应文件夹里?

[复制链接]
发表于 2016-5-21 12:19:54 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-5-21 14:00 编辑

有一个文件夹ALL包含了所有文件,文件名以10001,10002........11000.PDF几千个文件,现在想将这些文件归档。
手上有一份清单Excel表,里面有信息归类如下:
10001.PDF     A
10002.PDF     B
10003.PDF     C
10004.PDF     A
10005.PDF     C
10006.PDF     C
10007.PDF     A
10008.PDF     C
10009.PDF     C
.
.
.

然后以A,B,C.....创建文件夹,将对应的PDF文件移动到文件夹里面。
假设所有的文件都在D盘,请老师指教如何操作,谢谢!

评分

参与人数 1PB -4 收起 理由
pcl_test -4 未按版规发帖

查看全部评分

 楼主| 发表于 2016-5-21 13:42:48 | 显示全部楼层
有老师帮帮我吗?
发表于 2016-5-21 13:44:16 | 显示全部楼层
本帖最后由 /zhqsystem/zhq 于 2016-5-21 15:45 编辑

回复 1# michaelaa
文件超过1K过大不传了
红色区域,被论坛过滤改成空格了,无语
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('type ".\all.txt"')do (
  3. set "name=%%i"
  4. set "name=!name:TAB标点手动写入=\!"
  5. for /f "delims=" %%j in ("\!name!")do (
  6.   if not exist "%~f1\%%~pj" md "%~f1\%%~pj"
  7.   move,"%~f1\%%~nxj" "%~f1\%%~pj"
  8. )
  9. )
  10. pause
复制代码

文本格式[注意不是空格是TAB的键的标点,word本身复制出的列就是这个格式不需要改动]
ATAB标点10001.PDF
 楼主| 发表于 2016-5-21 13:46:54 | 显示全部楼层
回复 3# /zhqsystem/zhq
请问是回答我的问题吗?
发表于 2016-5-21 13:55:52 | 显示全部楼层
回复 4# michaelaa
3楼已更新,按错键好几次没编辑完就回,无语
 楼主| 发表于 2016-5-21 14:02:12 | 显示全部楼层
回复 3# /zhqsystem/zhq
老师你好,谢谢你的回答,复制出来的文本,没有写入你的代码啊。
 楼主| 发表于 2016-5-21 14:29:31 | 显示全部楼层
回复 3# /zhqsystem/zhq

老师是复制出这样子吗?然后怎么操作
A        10001.PDF
B        10002.PDF
C        10003.PDF
A        10004.PDF
C        10005.PDF
C        10006.PDF
A        10007.PDF
C        10008.PDF
C        10009.PDF
A        10010.PDF
B        10011.PDF
C        10012.PDF
A        10013.PDF
C        10014.PDF
C        10015.PDF
A        10016.PDF
C        10017.PDF
C        10018.PDF
A        10019.PDF

评分

参与人数 1PB -4 收起 理由
pcl_test -4 样本、举例要适当、适量

查看全部评分

发表于 2016-5-21 15:26:39 | 显示全部楼层
回复 7# michaelaa
代码处已更新附带说明,由于文件过大比代码字数多没有上传
 楼主| 发表于 2016-5-21 16:08:44 | 显示全部楼层
回复 8# /zhqsystem/zhq

诶,还是不行,指定的路径无效。
 楼主| 发表于 2016-5-21 16:18:48 | 显示全部楼层
回复 3# /zhqsystem/zhq

按照你的指点,做了两个文件,运行Bat,但是提示指定的路径无效。
发表于 2016-5-21 16:39:55 | 显示全部楼层
  1. @echo off
  2. :: 放文件的目录
  3. set p=%~dp0FileCenter
  4. :: All.txt和脚本放一起
  5. for /f "tokens=1,* delims=         " %%i in (All.txt) do (
  6.         mkdir "%p%\%%i" 2>nul
  7.         if exist "%p%\%%j" (
  8.                 move "%p%\%%j" "%p%\%%i"
  9.         ) else echo;%%j文件不存在,请核对!
  10. )
  11. pause & exit /b
复制代码
 楼主| 发表于 2016-5-21 18:07:36 | 显示全部楼层
回复 11# 回家路上

谢谢老师回复,但是还是不成功!返回文件不存在,请核对!
发表于 2016-5-21 19:27:56 | 显示全部楼层
回复 10# michaelaa
取值拖拽是文件夹并非是文件也就是将all文件夹拖拽到批处理上,
all.txt要放在BAT的所在目录即可生效,
我的预想是不可能每次拖拽文件,上万个拖拽到猴年马月啊,一个文件夹全部搞定
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 17:42 , Processed in 0.020854 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表