Board logo

标题: [文本处理] 【已解决】批处理如何将多个BAT合而为一? [打印本页]

作者: 思想之翼    时间: 2014-2-5 16:35     标题: 【已解决】批处理如何将多个BAT合而为一?

有如下若干BAT代码,如何将其合而为一?恳望得到大家的帮助。

@echo off
for /f "skip=10 delims=" %%i in ('dir /b /a-d /o-n /s "C:\001\lishi\*.txt"') do (
    copy "%%i" "C:\数据\01\1.txt"
    goto :eof
)

@echo off
for /f "skip=10 delims=" %%i in ('dir /b /a-d /o-n /s "C:\002\lishi\*.txt"') do (
    copy "%%i" "C:\数据\02\1.txt"
    goto :eof
)

@echo off
for /f "skip=10 delims=" %%i in ('dir /b /a-d /o-n /s "C:\003\lishi\*.txt"') do (
    copy "%%i" "C:\数据\03\1.txt"
    goto :eof
)

......
作者: xxpinqz    时间: 2014-2-5 17:26

  1. @echo off
  2. set n=10000
  3. :loop
  4. set/a n+=1
  5. for /f "skip=10 delims=" %%i in ('dir /b /a-d /o-n /s "c:\%n:~-3%\lishi\*.txt" 2^>nul') do (
  6.     echo copy "%%i" "C:\数据\%n:~-2%\1.txt"
  7.     goto :loop
  8. )
  9. pause
复制代码
看看对不对,正确删除第六行echo.
作者: cjiabing    时间: 2014-2-5 17:27

删掉  goto :eof
作者: DAIC    时间: 2014-2-5 17:34

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (C:\*) do (
  4.     if exist %%i\lishi\ (
  5.         set folderSrc=%%i
  6.         set folderDst=!folderSrc:~-2!
  7.         echo call :Copy_File "%%i" !folderDst!
  8.     )
  9. )
  10. goto :eof
  11. :Copy_File
  12. for /f "skip=10 delims=" %%j in ('dir /b /a-d /o-n /s "%~1\lishi\*.txt"') do (
  13.     echo copy "%%j" "C:\数据\%2\1.txt"
  14.     goto :eof
  15. )
复制代码

作者: 思想之翼    时间: 2014-2-5 18:56

本帖最后由 思想之翼 于 2014-2-5 19:32 编辑

回复 4# DAIC
您的上述代码不能提取数据。烦请看看为什么,好吗?
恳望再次得到您的帮助!
作者: 思想之翼    时间: 2014-2-5 19:08

回复 2# xxpinqz
您的代码显示拷贝路径正确,但不能拷贝数据。
另:删除第六行echo  也未能拷贝。
恳望再次得到您的帮助!
作者: xxpinqz    时间: 2014-2-5 20:03

回复 6# 思想之翼
第六行改为echo f|xcopy "%%i" "C:\数据\%n:~-2%\1.txt"
试试看
有问题把错误提示写出来,正确的就别贴了
作者: 思想之翼    时间: 2014-2-5 20:15

回复 7# xxpinqz
依然导不出数据。没有任何提示。
作者: DAIC    时间: 2014-2-5 20:17

回复 5# 思想之翼
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (C:\*) do (
  4.     if exist %%i\lishi\ (
  5.         set folderSrc=%%i
  6.         set folderDst=!folderSrc:~-2!
  7.         call :Copy_File "%%i" !folderDst!
  8.     )
  9. )
  10. goto :eof
  11. :Copy_File
  12. for /f "skip=10 delims=" %%j in ('dir /b /a-d /o-n /s "%~1\lishi\*.txt"') do (
  13.     copy "%%j" "C:\数据\%2\1.txt"
  14.     goto :eof
  15. )
复制代码

作者: xxpinqz    时间: 2014-2-10 11:16

自测了下,好像没问题嘛~~,
作者: 思想之翼    时间: 2014-3-6 00:22

本帖最后由 思想之翼 于 2014-3-6 16:39 编辑

回复 9# DAIC
感谢您给予的大力帮助!




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