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


    没事,大家一起来看看

TOP

不要沉,顶上去

TOP

下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

  1. @echo off
  2. :st1
  3. rem 默认创建文档到当前文件夹
  4. set "ph1=%cd%\"
  5. set /p ph1=请输入创建文档的路径:(如:c:\test\datst)
  6. :st2
  7. set /p ph2=请输入你要合并的文档路径:(如:d:\test\datst)
  8. if not exist %ph2%\ echo;输入错误 & goto st2
  9. set /p new_name=请输入你要创建的文件名:
  10. set "new_name=%ph1%\%new_name%.csv"
  11. md "%ph1%" 2>nul
  12. setlocal enabledelayedexpansion
  13. :start
  14. set /a n+=1
  15. set /p filename%n%=请输入你想要合并的文档%n%:
  16. if not exist "%ph2%\!filename%n%!.csv" (
  17.    if defined filename%n% (
  18.       echo;输入错误 !filename%n%!.csv 文件不存在
  19.       set "filename%n%="
  20.       set/a n-=1
  21.       set /p f=如需重新输入文件名请输入Y 退出按回车。
  22.       if /i "!f!" neq "Y" goto end
  23.       set "f="
  24.    ) else set/a n-=1&goto end
  25. ) else (
  26.     if !n! equ 1 (
  27.        copy /b "%ph2%\!filename%n%!.csv" "%new_name%" >nul
  28.     ) else more +3 "%ph2%\!filename%n%!.csv" >> "%new_name%"
  29. )
  30. goto start
  31. :end
  32. echo;%n% 个文件合并到 "%new_name%"
  33. endlocal
  34. set /p f=继续合并新文件输入Y 退出按回车。
  35. if /i "%f%" == "y" set f=&goto st1
复制代码

TOP

回复 19# terse


    你这合并后文档内容是接着第一个文档的最后一行加的,我需要换行接着加的,看附件
链接: http://pan.baidu.com/s/1sjQTrjf 密码: 1bc6

TOP

那你在代码28行下面加一行试试
  1. (for /f %%i in ('findstr /v $ "%new_name%"') do echo.)>>"%new_name%"
复制代码

TOP

回复 21# terse


    非常感谢,你的完全符合我的要求

TOP

回复 21# terse

最后结果
  1. @echo off
  2. :st1
  3. set "ph1=E:\C"
  4. set "ph2=E:\A"
  5. ::要合并的文档来源路径
  6. set /p new_name=请输入你要创建的文件名:
  7. set "new_name=%ph1%\%new_name%.csv"
  8. md "%ph1%" 2>nul
  9. setlocal enabledelayedexpansion
  10. :start
  11. set /a n+=1
  12. set /p filename%n%=请输入你想要合并的文档%n%:
  13. if not exist "%ph2%\!filename%n%!.csv" (
  14.    if defined filename%n% (
  15.       echo;输入错误 !filename%n%!.csv 文件不存在
  16.       set "filename%n%="
  17.       set/a n-=1
  18.       set /p f=如需重新输入文件名请输入Y 退出按回车。
  19.       if /i "!f!" neq "Y" goto end
  20.       set "f="
  21.    ) else set/a n-=1&goto end
  22. ) else (
  23.     if !n! equ 1 (
  24.        copy /b "%ph2%\!filename%n%!.csv" "%new_name%" >nul
  25.     ) else more +3 "%ph2%\!filename%n%!.csv" >> "%new_name%"
  26. )
  27. (for /f %%i in ('findstr /v $ "%new_name%"') do echo.)>>"%new_name%"
  28. goto start
  29. :end
  30. echo;%n% 个文件合并到 "%new_name%"
  31. endlocal
  32. set /p f=继续合并新文件输入Y 退出按回车。
  33. if /i "%f%" == "y" set f=&goto st1
复制代码
追问:如果在要合并的文档来源路径那里追加一个路径E:\B应该怎样写,就是在E:\A和E:\B里都去找一下要合并的文档

TOP

回复 23# WYXpclOK
这样?
  1. @echo off
  2. :st1
  3. set "ph1=E:\C"
  4. set "ph2=E:\A"
  5. set "ph3=E:\B"
  6. ::要合并的文档来源路径
  7. set /p new_name=请输入你要创建的文件名:
  8. set "new_name=%ph1%\%new_name%.csv"
  9. md "%ph1%" 2>nul
  10. setlocal enabledelayedexpansion
  11. :start
  12. set /a n+=1
  13. set /p filename%n%=请输入你想要合并的文档%n%:
  14. if not exist "%ph2%\!filename%n%!.csv" (
  15.    if not exist "%ph3%\!filename%n%!.csv" (
  16.       if defined filename%n% (
  17.          echo;输入错误 !filename%n%!.csv 文件不存在
  18.          set "filename%n%="
  19.          set/a n-=1
  20.          set /p f=如需重新输入文件名请输入Y 退出按回车。
  21.          if /i "!f!" neq "Y" goto end
  22.          set "f="
  23.       ) else set/a n-=1&goto end
  24.    else (
  25.      if !n! equ 1 (
  26.         copy /b "%ph3%\!filename%n%!.csv" "%new_name%" >nul
  27.      ) else more +3 "%ph3%\!filename%n%!.csv" >> "%new_name%"
  28. ) else (
  29.     if !n! equ 1 (
  30.        copy /b "%ph2%\!filename%n%!.csv" "%new_name%" >nul
  31.     ) else more +3 "%ph2%\!filename%n%!.csv" >> "%new_name%"
  32. )
  33. (for /f %%i in ('findstr /v $ "%new_name%"') do echo.)>>"%new_name%"
  34. goto start
  35. :end
  36. echo;%n% 个文件合并到 "%new_name%"
  37. endlocal
  38. set /p f=继续合并新文件输入Y 退出按回车。
  39. if /i "%f%" == "y" set f=&goto st1
复制代码

TOP

回复 24# terse


    你这样写是不行的,好像要用到for命令,可是我还不会用

TOP

有人知道吗

TOP

回复 25# WYXpclOK


    请举例说明24楼代码哪里不行

TOP

返回列表