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

[文件操作] 批处理如何将文件名中具有相同前缀字符串的文件移动到以该字符串命名的文件夹里

本帖最后由 pcl_test 于 2016-7-7 19:54 编辑

工作中遇到一个大难题,要移动几个名称相符的文件和文件夹,求各位老师帮忙代写一下。非常感谢!

结构:目录下有几百个文件夹(文件夹名称都以数字开头的,如5123AB),有几倍数量的INI配置文件(文件名称前一半与文件夹相同,如5123AB_1213.INI,5123AB_1215.ini等),每个文件夹中还有几个BAK格式文件。

处理1:将所有的INI配置文件按前一半相同名称移动到相同名称的文件夹中(如将5123AB_1213.INI,5123AB_1215.ini移动5123AB中)。
处理2:进入5123AB目录(第一层目录)中,再新建一个相同名称的文件夹5123AB(第二层目录),再将第一层目录下所有的BAK格式文件移动到这个新建的文件夹(第二层目录)中。
处理3:最后将D:\SLOG目录中的所有内容(有文件,也有文件夹)复制到每个目录(第一层目录)下各一份。
1

评分人数

    • pcl_test: 勿发笼统、无意义的标题PB -2

  1. @echo off
  2. for /f "delims=" %%a in ('dir * /ad /b') do (
  3.     move "%%~a_*.ini" "%%~a"
  4.    
  5.     md "%%~a\%%~a"
  6.     move "%%~a\*.BAK" "%%~a\%%~a\"
  7.    
  8.     xcopy /e D:\SLOG\*.* "%%~a\"
  9. )
  10. pause
复制代码
1

评分人数

    • wbkl: 谢谢,对我的启发很大。技术 + 1

TOP

尼玛,你不知道我当初想这个标题想了多久,。。。。我到现在都不知道 怎么样 描述这个标题,哎。。。

这个批处理,我这2天自学了一下,这样写行不行

@echo off

for /d  %%a in (*) do (
    move "%%~a_*.ini" "%%~a"
   
    md "%%~a\%%~a"
    move "%%~a\*.BAK" "%%~a\%%~a\"
   
    xcopy /e D:\SLOG\*.* "%%~a\"
)
pause

TOP

我试验过,能到达   预期的效果。。。只是不知道合不合理

TOP

回复 2# aa77dd@163.com


    非常 感谢 ,这2天忙了,没及时回复,不好意思。

TOP

返回列表