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

[文件操作] [已解决]批处理如何将文件名中包含指定字符串的文件移动到名称中含有该字符串的文件夹

[复制链接]
发表于 2010-12-28 17:14:22 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-8 11:01 编辑

如何批量移动包含莫字符的文件到包含该字符文件夹里面
比如:同一文件夹下,
有文件夹
QQ371-2355253TJZG
QQ372-GER36363
QQ379-346DG
QQ380-346YY
有文件
WWERT21QQ3711.doc
WWERT21QQ3721.doc
WWERT21QQ3791.doc
WWERT21QQ3801.doc
WW12E51QQ3721.pdf
WW2ET21QQ3791.pdf
WW32112QQ3871.pdf
如何把包含QQ371的文件移动到包含QQ371的文件夹里,
把包含QQ380的文件移动到包含QQ380的文件夹里,
把包含QQ379的文件移动到包含QQ379的文件夹里,
把包含04的文件移动到包含04的文件夹里,
如果如上所示,能批量处理么?
请给bat文件代码,谢谢!

[ 本帖最后由 prily1314 于 2010-12-28 20:03 编辑 ]

评分

参与人数 1PB +2 收起 理由
tmplinshi + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2010-12-28 17:54:47 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in ("*.pdf") do (
  4. md "%%~na" 2>nul
  5. move "%%a" "%%~na"
  6. )
  7. for %%a in ("*.doc") do (
  8. md "%%~na" 2>nul
  9. move "%%a" "%%~na"
  10. )
复制代码

[ 本帖最后由 andyrave 于 2010-12-28 18:00 编辑 ]
 楼主| 发表于 2010-12-28 19:03:39 | 显示全部楼层
原帖由 andyrave 于 2010-12-28 17:54 发表
@echo off
setlocal enabledelayedexpansion
for %%a in ("*.pdf") do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)
for %%a in ("*.doc") do (
md "%%~na" 2>nul
move "%%a" "%%~na"
)

不行呀兄弟,你这个是新建了和文件同名文件夹,我的问题是有文件夹,只是移动进去
发表于 2010-12-28 19:49:54 | 显示全部楼层
  1. @echo off&setlocal enableDelayedExpansion
  2. for /d %%a in (*) do for /f "tokens=1* delims=-" %%b in ("%%a") do if not "%%c"=="" set #%%b=%%b-%%c
  3. for %%a in (*) do (
  4.         set a=%%~na
  5.         for /f "delims==#" %%b in ('set #') do (
  6.                 set b=!a:%%b=!
  7.                 if "!a!" neq "!b!" move "%%a" "!#%%b!"
  8. ))
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-28 19:51 编辑 ]

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2010-12-28 19:58:21 | 显示全部楼层
原帖由 hanyeguxing 于 2010-12-28 19:49 发表
@echo off&setlocal enableDelayedExpansion
for /d %%a in (*) do for /f "tokens=1* delims=-" %%b in ("%%a") do if not "%%c"=="" set #%%b=%%b-%%c
for %%a in (*) do (
        set a=%%~na
        for / ...


相当的十分感谢!!ok了。谢谢,你真勇猛。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 02:32 , Processed in 0.015340 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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