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

[文本处理] 批处理怎样把关键词文件复制到包含关键词的文件夹?

[复制链接]
发表于 2023-10-29 17:04:03 | 显示全部楼层 |阅读模式
桌面有多个文件,名称是姓名命令的。

d盘有多个文件夹,也是按照那些名称+备注命名的。

怎样用批处理,把桌面不同的文件,复制到d盘同名文件夹。

注意:文件名和文件夹名称只是包含了关键词~
发表于 2023-10-29 17:41:24 | 显示全部楼层
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. for %%a in (*) do (
  5.         for /d %%d in ("d:\*%%~na*") do (
  6.                 copy "%%a" "%%d"
  7.         )
  8. )
  9. pause
复制代码

批处理放在桌面执行
 楼主| 发表于 2023-10-29 17:53:46 | 显示全部楼层
回复 2# 77七


    谢谢大佬,每次我都是手动给这些文件添加上名字,有什么办法能给这些文件前面快速加上指定的名称吗?每个名字都不同,写进list.txt里面,然后一键加上可以吗?

例如把文件A前面加上:张三-,形成张三-文件A,文件B也是加上李四-,等等。
不知道怎样定义,怎样加……
发表于 2023-10-29 18:09:03 | 显示全部楼层
回复 3# 小白来了


   你前面的帖子,不也是这个问题吗?
假如有一只黑猫、一只白猫,需要取名字,是白猫叫小白,黑猫叫小黑,还是只是不管叫什么,只是取个名字区分它们,白猫也可以叫小黑?还是它们根据高矮排队,第一个就叫小白,第二个叫小黑?
 楼主| 发表于 2023-10-29 18:14:24 | 显示全部楼层
回复 4# 77七


    根据高矮排序,我把他们名字写到txt,然后给他们加上名字。

之前老大写的名字加上了,结果发现是随机的~
发表于 2023-10-29 18:18:09 | 显示全部楼层
回复 5# 小白来了


   命令行输入 dir /?
  1.   /O          用分类顺序列出文件。
  2.   排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
  3.                E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
  4.                G  组目录优先           -  反转顺序的前缀
复制代码


你看下你需要哪种顺序
比如 dir /on dir /o-n
 楼主| 发表于 2023-10-29 18:22:03 | 显示全部楼层
回复 6# 77七


    按名称字母排序吧,打开文件夹里面 是按照名称字母排序的,从A到Z这样的。谢谢大哥!
发表于 2023-10-29 18:39:37 | 显示全部楼层
本帖最后由 77七 于 2023-10-29 18:44 编辑

回复 7# 小白来了


  
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. setlocal enabledelayedexpansion
  5. (for /f "delims=" %%i in ('dir /b /a-d /on ^|find /v "%~nx0" ^|find /v "list.txt"') do (
  6.         set /p str=
  7.         ren "%%i" "!str!-%%i"
  8. ))<list.txt
  9. pause
复制代码
 楼主| 发表于 2023-10-29 18:56:49 | 显示全部楼层
回复 8# 77七


    测试成功,感谢老大,文件夹名称排序-递减。成了!谢谢您
 楼主| 发表于 2023-10-29 19:44:14 | 显示全部楼层
回复 2# 77七


    大哥还在不,要复制的文件名是0-开头的话,要怎样改呢?测试老半天搞不定、、去掉0-,只写姓名是可以复制过去的。

  文件名带0-是为了复制过去 排序靠前...
发表于 2023-10-29 20:12:25 | 显示全部楼层
回复 10# 小白来了


  
  1. @echo off
  2. rem 批处理保存为ansi编码格式
  3. cd /d "%~dp0"
  4. rem 复制数字开头
  5. for /f "tokens=1* delims=-" %%a in ('dir /b /a-d ^|findstr /rbc:"[0-9][0-9]*-"') do (
  6.         for /f "delims=" %%c in ("%%b") do (
  7.                 for /d %%d in ("d:\*%%~nb*") do (
  8.                         copy "%%a-%%b" "%%d"
  9.                 )
  10.         )
  11. )
  12. rem 复制非数字开头
  13. for /f "delims=" %%a in ('dir /b /a-d ^|findstr /rbvc:"[0-9][0-9]*-"') do (
  14.         for /d %%d in ("d:\*%%~na*") do (
  15.                 copy "%%a" "%%d"
  16.         )
  17. )
  18. pause
复制代码
 楼主| 发表于 2023-10-29 20:26:06 | 显示全部楼层
回复 11# 77七


    大哥,你简直太6了!大哥,我祝福您生意兴隆通四海;大哥,我祝福您日进斗金达三江;大哥,我祝福您财源滚滚来如潮。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 10:44 , Processed in 0.020849 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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