本帖最后由 toyerspollors 于 2021-2-26 16:31 编辑
- @echo off
- set F=%date:~5,2%%date:~8,2%
- md ".\%F%总文件夹\432 小张-小红-s5"
- md ".\%F%总文件夹\673 大军-阿四-01"
- md ".\%F%总文件夹\gg3 大军-小冰-77"
- md ".\%F%总文件夹\8lr 小齐-大宝-41"
- md ".\%F%总文件夹\623 李哥-三弟-5y"
- md ".\测试1 复制-目标-2"
- md ".\测试2 复制-目标(基友)-2"
- md ".\测试2 复制-目标(基友)-2\123"
- echo >".\测试1 复制-目标-2\list.txt"
- echo >".\测试2 复制-目标(基友)-2\list2.txt"
- echo >".\测试3 复制-list-8.txt"
- echo >".\测试4 复制-test(基友)-97.docx"
- echo >".\测试2 复制-目标(基友)-2\11\df3d 基友-小萧-66.mp3"
- cls
-
- :top
- echo.
- echo.
- echo.
- set /p 源文件=把要复制的文件拖拽进来==》
- set 输出目标路径=.\%F%总文件夹
- set F=%date:~5,2%%date:~8,2%
- for /f "tokens=*" %%a in ('dir /ad/b ".\%输出目标路径%"') do (
- xcopy "%源文件%" /y ".\%输出目标路径%\%%a\"
- )
-
- pause
- goto :top
复制代码 新手求学
上面代码前面16行是创建好测试需要用到的文件夹层级和文件。22-28行,实现的效果是,运行bat文件后,把要复制的文件拖到黑色窗口上,确认后会把拖拽进来的文件复制到“%F%总文件夹”这个目录层级下的所有文件夹中(不遍历所有子级)。
问题1:我只是会写以上复制文件的代码,但是我也想用这种拖拽到窗口的方式来复制文件夹,把文件夹复制到“%F%总文件夹”这个目录层级下的所有文件夹中(不遍历所有子级)。不知道怎么写?能否在一个bat中兼顾到既能复制文件,又能复制文件夹呢?
问题2: 我想实现把文件或文件夹复制到带有关键字(多个)的文件夹中,例如“%F%总文件夹”这个目录层级下有多个文件夹,但是我只想复制给文件夹的命名带有关键字“大军“、”三弟“的文件夹里,不知道如何编写代码?复制文件夹的话,要把整个主目录文件夹复制过去,而不是只复制主目录里面的子文件夹和文件。关键字是能直接写在代码上的,不要使用调用txt文档来识别关键字。
注意:
我的操作是,把要复制的文件或文件夹拖拽到运行后的bat窗口中,而不是直接拖到bat文件的图标上。
另外测试的“源文件(文件夹)”和“%F%总文件夹”目录层级下的文件夹在命名上是带有空格字符的,代码要支持带有空格字符。
希望老师们帮助一下,让我借此也能学习一些bat知识,谢谢! |