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

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

桌面有多个文件,名称是姓名命令的。

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

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

注意:文件名和文件夹名称只是包含了关键词~

  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
复制代码

批处理放在桌面执行
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


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

例如把文件A前面加上:张三-,形成张三-文件A,文件B也是加上李四-,等等。
不知道怎样定义,怎样加……

TOP

回复 3# 小白来了


   你前面的帖子,不也是这个问题吗?
假如有一只黑猫、一只白猫,需要取名字,是白猫叫小白,黑猫叫小黑,还是只是不管叫什么,只是取个名字区分它们,白猫也可以叫小黑?还是它们根据高矮排队,第一个就叫小白,第二个叫小黑?
bat小白,请多指教!谢谢!

TOP

回复 4# 77七


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

之前老大写的名字加上了,结果发现是随机的~

TOP

回复 5# 小白来了


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


你看下你需要哪种顺序
比如 dir /on dir /o-n
bat小白,请多指教!谢谢!

TOP

回复 6# 77七


    按名称字母排序吧,打开文件夹里面 是按照名称字母排序的,从A到Z这样的。谢谢大哥!

TOP

本帖最后由 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
复制代码
bat小白,请多指教!谢谢!

TOP

回复 8# 77七


    测试成功,感谢老大,文件夹名称排序-递减。成了!谢谢您

TOP

回复 2# 77七


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

  文件名带0-是为了复制过去 排序靠前...

TOP

回复 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
复制代码
bat小白,请多指教!谢谢!

TOP

回复 11# 77七


    大哥,你简直太6了!大哥,我祝福您生意兴隆通四海;大哥,我祝福您日进斗金达三江;大哥,我祝福您财源滚滚来如潮。

TOP

返回列表