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

[文本处理] 批处理怎样将A文件夹下的txt转移到另一个文件夹下?

[复制链接]
发表于 2013-10-18 09:46:04 | 显示全部楼层 |阅读模式
本帖最后由 fly_shen 于 2013-10-18 14:00 编辑

D盘r_g1、r_g2、r_g3文件夹下里的所有txt剪切到E盘的水数据文件夹里,D盘下的r_w1、r_w2、r_w3里的所有txt剪切到E盘的气数据文件夹里。因D盘磁盘空间有限,所以每天要手工剪切。另这些txt是每天都会产生,所以希望将txt剪切到E盘数据文件夹时可自动创建相应月份的文件夹,并存放在相应的月份文件夹下。麻烦各位大神了啊...
发表于 2013-10-18 10:19:08 | 显示全部楼层
剪切之后是要得到这样的效果吗?

E:\水数据\月份\r_g1\*.txt
E:\水数据\月份\r_g2\*.txt
E:\水数据\月份\r_g3\*.txt

E:\气数据\月份\r_w1\*.txt
E:\气数据\月份\r_w2\*.txt
E:\气数据\月份\r_w3\*.txt
 楼主| 发表于 2013-10-18 10:24:37 | 显示全部楼层
回复 2# DAIC


    是的,我想用用任务计划加bat自动实现,每月的数据归档。。。
发表于 2013-10-18 10:39:41 | 显示全部楼层
回复 3# fly_shen


开始
运行
cmd
echo %date%
把结果发出来看看
发表于 2013-10-18 11:25:07 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "srcFolder=D:\Test"
  4. set "dstFolder=E:\Test"
  5. set "thisMonth=%date:~0,7%"
  6. for /d %%i in ("%srcFolder%\r_*") do (
  7.     set folderName=%%~ni
  8.     set folderType=!folderName:~2,1!
  9.     if "!folderType!" equ "g" (
  10.         if not exist "%dstFolder%\水数据\%thisMonth%\!folderName!" (
  11.             md "%dstFolder%\水数据\%thisMonth%\!folderName!"
  12.         )
  13.         move /y "%%i\*.txt" "%dstFolder%\水数据\%thisMonth%\!folderName!"
  14.     ) else if "!folderType!" equ "w" (
  15.         if not exist "%dstFolder%\气数据\%thisMonth%\!folderName!" (
  16.             md "%dstFolder%\气数据\%thisMonth%\!folderName!"
  17.         )
  18.         move /y "%%i\*.txt" "%dstFolder%\气数据\%thisMonth%\!folderName!"
  19.     )
  20. )
复制代码
 楼主| 发表于 2013-10-18 11:29:03 | 显示全部楼层
回复 6# DAIC


其中的r_gw里的数据不能被剪切走啊
 楼主| 发表于 2013-10-18 11:30:55 | 显示全部楼层
回复 6# DAIC


    @echo off
for %%a in (1 2 3) do (
move E:\监控中心V1.0\通讯中心\入库数据\r_g%%a\*.txt F:\老系统气数据\
move E:\监控中心V1.0\通讯中心\入库数据\r_w%%a\*.txt F:\老系统水数据
)
pause   这是现在用的bat,但是不能生成月份的文件夹
发表于 2013-10-18 11:34:34 | 显示全部楼层
回复 8# fly_shen
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "srcFolder=E:\监控中心V1.0\通讯中心\入库数据"
  4. set "dstFolder=F:\老系统气数据"
  5. set "thisMonth=%date:~0,7%"
  6. for /d %%i in ("%srcFolder%\r_*") do (
  7.     set folderName=%%~ni
  8.     set folderType=!folderName:~2,1!
  9.     if "!folderType!" equ "g" (
  10.         if not exist "%dstFolder%\水数据\%thisMonth%\!folderName!" (
  11.             md "%dstFolder%\水数据\%thisMonth%\!folderName!"
  12.         )
  13.         move /y "%%i\*.txt" "%dstFolder%\水数据\%thisMonth%\!folderName!"
  14.     ) else if "!folderType!" equ "w" (
  15.         if not exist "%dstFolder%\气数据\%thisMonth%\!folderName!" (
  16.             md "%dstFolder%\气数据\%thisMonth%\!folderName!"
  17.         )
  18.         move /y "%%i\*.txt" "%dstFolder%\气数据\%thisMonth%\!folderName!"
  19.     )
  20. )
复制代码
 楼主| 发表于 2013-10-18 11:41:05 | 显示全部楼层
回复 9# DAIC

这个还是把源文件夹下的r_gw里的txt都剪切过来了啊
发表于 2013-10-18 12:34:51 | 显示全部楼层
回复 10# fly_shen
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "srcFolder=E:\监控中心V1.0\通讯中心\入库数据"
  4. set "dstFolder=F:\老系统气数据"
  5. set "thisMonth=%date:~0,7%"
  6. for /f "delims=" %%i in ('dir /b /ad "%srcFolder%" ^| findstr "r_[gw][1-3]"') do (
  7.     set folderName=%%i
  8.     set folderType=!folderName:~2,1!
  9.     if "!folderType!" equ "g" (
  10.         if not exist "%dstFolder%\水数据\%thisMonth%\!folderName!" (
  11.             md "%dstFolder%\水数据\%thisMonth%\!folderName!"
  12.         )
  13.         echo move /y "%srcFolder%\%%i\*.txt" "%dstFolder%\水数据\%thisMonth%\!folderName!"
  14.     ) else if "!folderType!" equ "w" (
  15.         if not exist "%dstFolder%\气数据\%thisMonth%\!folderName!" (
  16.             md "%dstFolder%\气数据\%thisMonth%\!folderName!"
  17.         )
  18.         echo move /y "%srcFolder%\%%i\*.txt" "%dstFolder%\气数据\%thisMonth%\!folderName!"
  19.     )
  20. )
复制代码
 楼主| 发表于 2013-10-18 14:01:17 | 显示全部楼层
回复 11# DAIC


    谢谢啦。。。大神
 楼主| 发表于 2013-11-4 11:06:53 | 显示全部楼层
回复 11# DAIC


    您好,这个代码只能把时间文件夹创建,但源文件夹中的txt没有move到新建文件夹中,本人很菜没找到原因..
发表于 2013-11-4 11:29:48 | 显示全部楼层
回复 13# fly_shen


    把move前面的echo删掉
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 18:43 , Processed in 0.034473 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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