Board logo

标题: [文本处理] 批处理如何给文本首尾批量加段落? [打印本页]

作者: daohe    时间: 2011-3-21 16:49     标题: 批处理如何给文本首尾批量加段落?

D:/A/ 文件夹及其子文件夹 有几十个到几千个txt文本文档

D:/B/ 文件夹里包含几个到几百个txt文本文档(没有子目录)

批处理要求:
先读取A文件夹所有文件目录,包含路径.
然后随机抽取 B文件夹的任意两个不同txt文档,
挨个添加到A文件夹的每一个文本文档里.

举例:
D:/A/aaa.txt
D:/A/E/bbb.txt
D:/A/ccc.txt

D:/B/111.txt
D:/B/222.txt
D:/B/333.txt

经批处理
________B文件夹随机_______A文件夹______B文件夹随机
D:/A/         111.txt        +       aaa.txt   +      222.txt
D:/A/E/      333.txt        +       bbb.txt   +      222.txt
D:/A/         111.txt        +       ccc.txt    +      333.txt

结果保存在C文件夹(C子目录和文件名与A相同)
D:/C/aaa.txt
D:/C/E/bbb.txt
D:/C/ccc.txt
作者: CrLf    时间: 2011-3-21 17:02

随机...楼主自己都说不清楚的东西,别人怎么搞
作者: caruko    时间: 2011-3-21 17:20

本帖最后由 caruko 于 2011-3-22 12:37 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%i in ('dir d:\a /s /b *.txt') do (
  4.           set /a n+=1
  5.           set "dir_!n!=%%a"
  6. )
  7. for /f "delims=" %%i in ('dir d:\b /s /b *.txt') do (
  8.          set /a x=!RANDOM!%%n+1
  9.          set /a y=!RANDOM!%%n+1
  10.          for /f "tokens=1,2" %%a in ("!x! !y!") do  copy "!dir_%%a!"+"%%i"+"!dir_%%b!" d:\c\%%~nxi
  11. )
复制代码
set /a 忘记加/A ,结果自然是%%号带进copy了,命令被分割了。
另外除号改求余,call改for试试
作者: daohe    时间: 2011-3-22 09:03

2# zm900612


的确,这个问题比较难阐释
作者: daohe    时间: 2011-3-22 09:09

本帖最后由 daohe 于 2011-3-22 09:11 编辑

3# caruko

代码跟我需要的思路是对的.但是执行了半天,没有结果出来.很奇怪

最后提示错误, XXX不是内部或外部命令,无法运行命令的提示
作者: tmplinshi    时间: 2011-3-24 04:31

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set "S=D:\A"
  4. set "S_R=D:\B"
  5. set "D=D:\C"
  6. set n=
  7. for %%a in ("%S_R%\*.txt") do (
  8.     set /a n += 1
  9.     set !n!=%%~na
  10. )
  11. cd /d "%S%"
  12. md "%D%" 2>nul
  13. for %%i in (*.txt) do (
  14.     set /a r1 = !random! %% n + 1, r2 = !random! %% n + 1
  15.     for /f "tokens=1,2" %%a in ("!r1! !r2!") do (
  16.         copy "%S_R%\!%%a!.txt"+"%%i"+"%S_R%\!%%b!.txt" "%D%\%%~nxi" /b
  17.     )
  18. )
复制代码

作者: daohe    时间: 2011-3-24 19:57

6# tmplinshi

不行.生成了一个C文件夹,但是里面是空的




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