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

[文件操作] 【已解决】批处理怎样把文件或文件夹复制到某路径下带关键字(多个)的文件夹中

本帖最后由 toyerspollors 于 2021-2-26 16:31 编辑
  1. @echo off
  2. set F=%date:~5,2%%date:~8,2%
  3. md ".\%F%总文件夹\432 小张-小红-s5"
  4. md ".\%F%总文件夹\673 大军-阿四-01"
  5. md ".\%F%总文件夹\gg3 大军-小冰-77"
  6. md ".\%F%总文件夹\8lr 小齐-大宝-41"
  7. md ".\%F%总文件夹\623 李哥-三弟-5y"
  8. md ".\测试1 复制-目标-2"
  9. md ".\测试2 复制-目标(基友)-2"
  10. md ".\测试2 复制-目标(基友)-2\123"
  11. echo >".\测试1 复制-目标-2\list.txt"
  12. echo >".\测试2 复制-目标(基友)-2\list2.txt"
  13. echo >".\测试3 复制-list-8.txt"
  14. echo >".\测试4 复制-test(基友)-97.docx"
  15. echo >".\测试2 复制-目标(基友)-2\11\df3d 基友-小萧-66.mp3"
  16. cls
  17. :top
  18. echo.
  19. echo.
  20. echo.
  21. set /p 源文件=把要复制的文件拖拽进来==》
  22. set 输出目标路径=.\%F%总文件夹
  23. set F=%date:~5,2%%date:~8,2%
  24. for /f "tokens=*" %%a in ('dir /ad/b ".\%输出目标路径%"') do (
  25. xcopy "%源文件%" /y ".\%输出目标路径%\%%a\"
  26. )
  27. pause
  28. goto :top
复制代码
新手求学

    上面代码前面16行是创建好测试需要用到的文件夹层级和文件。22-28行,实现的效果是,运行bat文件后,把要复制的文件拖到黑色窗口上,确认后会把拖拽进来的文件复制到“%F%总文件夹”这个目录层级下的所有文件夹中(不遍历所有子级)。

    问题1:我只是会写以上复制文件的代码,但是我也想用这种拖拽到窗口的方式来复制文件夹,把文件夹复制到“%F%总文件夹”这个目录层级下的所有文件夹中(不遍历所有子级)。不知道怎么写?能否在一个bat中兼顾到既能复制文件,又能复制文件夹呢?

    问题2: 我想实现把文件或文件夹复制到带有关键字(多个)的文件夹中,例如“%F%总文件夹”这个目录层级下有多个文件夹,但是我只想复制给文件夹的命名带有关键字“大军“、”三弟“的文件夹里,不知道如何编写代码?复制文件夹的话,要把整个主目录文件夹复制过去,而不是只复制主目录里面的子文件夹和文件。关键字是能直接写在代码上的,不要使用调用txt文档来识别关键字。

    注意:
    我的操作是,把要复制的文件或文件夹拖拽到运行后的bat窗口中,而不是直接拖到bat文件的图标上。
    另外测试的“源文件(文件夹)”和“%F%总文件夹”目录层级下的文件夹在命名上是带有空格字符的,代码要支持带有空格字符。

    希望老师们帮助一下,让我借此也能学习一些bat知识,谢谢!

本帖最后由 toyerspollors 于 2021-2-24 09:48 编辑

效果实例
smss 发表于 2021-2-23 10:57
  1. set /p 源文件=把要复制的文件拖拽进来==》
  2. set 输出目标路径=.\%F%总文件夹
  3. set F=%date:~5,2%%date:~8,2%
  4. for /f "tokens=*" %%a in ('dir /ad/b ".\%输出目标路径%"') do (
  5. xcopy "%源文件%" /y ".\%输出目标路径%\%%a\"
  6. )
复制代码
首先谢谢老师在百忙中给予帮助!
但我需要的操作是,把要复制的文件或文件夹拖拽到运行后的bat窗口中,如以上代码的效果。而不是直接拖到bat文件的图标上实现复制。

你给出的代码我测试不成功,我是先把要复制的文件拖拽到你这个代码的bat文件图标上,然后输入最后输出复制到哪个文件夹的关键字。确认后产生的效果是会在bat文件目录下,自动生成一个以当天日期命名的文件夹,然后要复制的东西会复制到这个新创建的文件夹中。但本人新手表示看不懂你这些复杂的代码,不会去修改满足自己的需要。

在1楼我重新编辑了问题内容,可能会比之前好理解一些了。

TOP

本帖最后由 toyerspollors 于 2021-2-24 15:15 编辑

回复 4# cutebe


暂时还没学会使用 / findstr ,  问题2的代码能帮写一下吗?源文件(文件夹)与带有关键字的文件夹都是有空格的,谢谢!

TOP

复制到所有一级子目录仅复制到关键字子目录
cutebe 发表于 2021-2-24 17:30



    6楼的代码解决了我的问题,谢谢!

TOP

smss 发表于 2021-2-24 17:17



    我测试了你的代码,可能是我不会使用吧,没能成功,我也看不懂,感觉乱乱的,不太会查找错误的地方去修改。

TOP

返回列表