Board logo

标题: [文本处理] 批处理怎样将A文件夹下的txt转移到另一个文件夹下? [打印本页]

作者: fly_shen    时间: 2013-10-18 09:46     标题: 批处理怎样将A文件夹下的txt转移到另一个文件夹下?

本帖最后由 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盘数据文件夹时可自动创建相应月份的文件夹,并存放在相应的月份文件夹下。麻烦各位大神了啊...
作者: DAIC    时间: 2013-10-18 10:19

剪切之后是要得到这样的效果吗?

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

E:\气数据\月份\r_w1\*.txt
E:\气数据\月份\r_w2\*.txt
E:\气数据\月份\r_w3\*.txt
作者: fly_shen    时间: 2013-10-18 10:24

回复 2# DAIC


    是的,我想用用任务计划加bat自动实现,每月的数据归档。。。
作者: DAIC    时间: 2013-10-18 10:39

回复 3# fly_shen


开始
运行
cmd
echo %date%
把结果发出来看看
作者: DAIC    时间: 2013-10-18 11:25

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

作者: fly_shen    时间: 2013-10-18 11:29

回复 6# DAIC


其中的r_gw里的数据不能被剪切走啊
作者: fly_shen    时间: 2013-10-18 11:30

回复 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,但是不能生成月份的文件夹
作者: DAIC    时间: 2013-10-18 11: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. )
复制代码

作者: fly_shen    时间: 2013-10-18 11:41

回复 9# DAIC

这个还是把源文件夹下的r_gw里的txt都剪切过来了啊
作者: DAIC    时间: 2013-10-18 12:34

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

作者: fly_shen    时间: 2013-10-18 14:01

回复 11# DAIC


    谢谢啦。。。大神
作者: fly_shen    时间: 2013-11-4 11:06

回复 11# DAIC


    您好,这个代码只能把时间文件夹创建,但源文件夹中的txt没有move到新建文件夹中,本人很菜没找到原因..
作者: DAIC    时间: 2013-11-4 11:29

回复 13# fly_shen


    把move前面的echo删掉




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2