[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]求助批处理根据清单创建文件夹并复制文件

各位老师,我因为工作需要,有个需求是这样的,想根据一个清单(清单内有多个文件名例如 1.pdf, 2.pdf, 3.pdf ,4.pdf,5pdf  6.pdf)  和 多 个文件夹名  A, B,  C,
A 1.pdf  2.pdf
B 3.pdf  6.pdf
C 4pdf  5. pdf
1. 在当前目录下(C:\Users\Administrator\Desktop\test1\)创建清单内的多个文件夹。
2. 到指定目录下的文件夹(D:文件数据库)内复制和清单内的文件名的文件到刚创建的文件夹内,需要和清单内容是一一对应,例如:1.pdf,2pdf 复制到 A 文件夹内, 3.pdf  6.pdf  复制在B 文件夹内,  4.pdf  ,5pdf  复制到C 文件夹内
3  如果(D:文件数据库)内没有清单内的文件名,(假设: 6.pdf,  5.pdf 是不存在的) 需要创建一个复制不成功清单,包含不成功的文件名。
[img][/img]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# feiyan


    换个标题啦 一会batcher要过来扣分的
还有要求没看懂
你好

TOP

清单长啥样?

A 1.pdf 2.pdf
B 3.pdf

还是

[A]
1.pdf
2.pdf

[B]
3.pdf

QQ 20147578

TOP

回复 1# feiyan


请把清单发出来看看,如果需要上传文件,可以用阿里云盘或百度网盘。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

文件夹和文件名是否含有空格?
bat小白,请多指教!谢谢!

TOP

回复 5# 77七


    没有空格

TOP

xi新人刚来,傻傻不懂,标题是有固定的要求和格式吗?

TOP

已经上传截图了,还把表述不清楚的,重新编辑下

TOP

本帖最后由 77七 于 2023-6-17 20:21 编辑
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "C:\Users\Administrator\Desktop\test1\"
  4. for /f "delims=" %%a in ('type "1.txt"') do (
  5.         setlocal enabledelayedexpansion
  6.         for %%b in (%%a) do (
  7.                 if defined folder (
  8.                         if exist "D:\文件数据库\%%b" (
  9.                                 copy "D:\文件数据库\%%b" "!folder!"
  10.                         ) else (
  11.                                 >>log.txt echo %%b
  12.                         )
  13.                 ) else (
  14.                         set "folder=%%b"
  15.                         md "!folder!"
  16.                 )
  17.         )
  18.         endlocal
  19. )
  20. pause
复制代码

试试行吗
1

评分人数

bat小白,请多指教!谢谢!

TOP

本帖最后由 yakeyun 于 2023-6-17 20:08 编辑

回复 1# feiyan

未测试,不知道是不是需要的。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. pushd "%~dp0"
  4. for /f "tokens=1-3" %%a in (1.txt) do (
  5.     md "%%a"
  6.     if exist "D:文件数据库\%%b" (
  7.         xcopy "D:文件数据库\%%b" ".\%%a\" /f /y >nul
  8.     ) else (
  9.         echo 找不到指定文档:%%b ,拷贝到文件夹%%a中。 >>错误清单.log
  10.     )
  11.     if exist "D:文件数据库\%%c" (
  12.         xcopy "D:文件数据库\%%c" ".\%%a\" /f /y >nul
  13.     ) else (
  14.         echo 找不到指定文档:%%c ,拷贝到文件夹%%a中。 >>错误清单.log
  15.     )
  16. )
  17. popd
  18. exit
复制代码
1

评分人数

TOP

批处理文件放在C:\Users\Administrator\Desktop\test1\目录下,并保存为ANSI编码:
  1. @echo off
  2. (for /f "tokens=1*" %%i in (1.txt) do (
  3.     md "%%i">nul 2>nul
  4.     for %%k in (%%j) do (
  5.         if exist "D:\文件数据库\%%k" (
  6.             copy "D:\文件数据库\%%k" "%%i\">nul 2>nul
  7.         ) else (
  8.             echo,%%k
  9.         )
  10.     )
  11. ))>2.txt
  12. pause
复制代码
1

评分人数

TOP

回复 9# 77七
系统显示找不到指定文件

TOP

回复 11# qixiaobin0715

显示找不到文件

TOP

回复 10# yakeyun
双击后无任何反应,我特地检查下,是完全copy 过来的

TOP

9 10 11 楼的代码,是假设你的清单文件名为 1.txt,且和批处理文件在一起

QQ 20147578

TOP

返回列表